簡體   English   中英

使用HTMLentities轉義的UTF-8返回空白

[英]UTF-8 escaping with HTMLentities returns blank

我正在使用** MySQL的LOAD DATA INFILE命令將CSV文件導入我的數據庫 該文件不一定是UTF-8編碼的 ,對此我沒有任何控制權,因此我必須求助於前/后處理。 我的數據庫和HTML網頁都執行UTF-8編碼 由於我確實加載了數據文件,因此我必須對此進行后期處理。 因此,我從數據庫中提取信息,並使用htmlentities應用我的后處理過濾器。

   foreach($records as $r)
       $updates[] = htmlentities($r["column"], ENT_COMPAT, 'UTF-8');

然后,我再次更新數據庫表。

列進入表的方式與后處理之前一樣,但是之后變為空白,這意味着htmlentities返回了一個空白,並且這是HTML的有效返回值。

具體來說,候選值是:

“ PJ防風雨32®”

知道為什么嗎?

調用中的“ UTF-8”參數承諾htmlentities()傳入數據將為UTF-8。 當沒有數據時,這將導致函數返回空白值。

您將需要嘗試嗅探編碼,這是一個不可靠的過程,並且只有在可能的編碼集非常有限時才能正常工作。 參見例如這個答案。

無論哪種方式,您都可以擺脫htmlentities()調用-它無濟於事,只是無用地在不需要的地方添加HTML實體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM