2009-07-28 92 views
0

考慮以下字符串。它以UTF-16-LE編碼並保存到PHP變量中。我沒有得到mbstring或iconv來替換單引號的'。這是一個很好的方法來進行sanatize它。PHP UTF-16到ASCII轉換

字符串:卡爾·薩根'小號宇宙連接

+0

解決了它。使用mb_convert_encoding而不是UTF-16-LE => UTF-16,輸出編碼設置爲PHP的內部UTF-8而不是ASCII(ISO-8859)。 – gnosio 2009-07-28 22:14:41

回答

1

除非我誤解的問題,'不是UTF-16的問題。該字符串已運行htmlspecialchars()htmlentities(),並且單引號轉換爲html實體表示'

要恢復正常,您需要執行html_entity_decode()

通常你只想在輸出時做html編碼,這樣可以避免持續這種轉換。如果您在某處輸入HTML以獲取這些字符串,則可能需要在執行UTF轉換和存儲之前先解碼實體。

+0

嘿謝謝你的回覆,但它沒有這樣做。即使是一個簡單的str_replace拒絕工作,這導致了我的上述結論。 – gnosio 2009-07-28 21:48:39