2012-02-07 142 views
0

我有一些表設置爲utf8_general_ci,並使用PHP的mysqli驅動程序,字符集設置爲'utf8'。我已在DEFAULT_CHARSET也設置爲UTF-8PHP和MySQLi UTF8

然而,字符正在與「\u0101l

任何想法換成這是什麼或如何解決呢?在我沒有使用utf8的mysqli之前,它只顯示了一個問號,而不是鑽石問號 - 只是一個常規的'?'

謝謝!

+0

AFAIK MySQL不會永遠JSON編碼您的字符。請逐步調試,確切發生這種情況。 – deceze 2012-02-07 03:11:55

+0

你的PHP文件編碼怎麼樣?它也是UTF-8嗎? – 2012-02-07 03:10:56

回答

1

我很確定你在某處使用「htmlentities()」或「html_entity_decode()」。問題是,htmlentities()仍然試圖將其輸入解釋爲ISO-8859-1,而html_entity_decode()現在默認爲UTF-8。解決方案:如果您使用上面列出的這些功能中的任何一種,則每次都明確指定編碼類型。我有這個問題,我的一個同事寫了一篇關於該主題的文章也http://lab.clearpixel.com.au/2012/01/html-entity-character-conversion-in-php/

我希望它能幫助