0
我拉下面的字符串從數據庫'86
,並通過出於安全原因的逃生功能運行它,因爲這是用戶定義的數據:撇號數字字符引用在顯示時未轉換嗎?
htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
我回來的回報是'86
。
所以htmlspecialchars
是逃避apostraphe並將其轉換成其numeric character reference(而不是其character entity reference,我猜是因爲沒有一個撇號)。
我遇到的問題是,當文本顯示在瀏覽器上時,瀏覽器不會將其顯示爲'
,而只是打印'86
。查看該頁面的源代碼以確認它源於'86
(因此它不是雙編碼的)。我嘗試了幾個瀏覽器。
來自服務器的內容類型標頭正確設置爲text/html; charset=utf-8
。
任何想法爲什麼它不能正確顯示?
看起來像是一個「演示或沒有發生」的情況。如果接收的內容實際上被視爲HTML,則在解析文檔時HTML實體將被解碼。 –
事實上,我正在準備演示時忽略了一些我發現的東西:) – Brian