[英]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.