2014-06-25 39 views
0

我的數據類型爲「longtext」的UTF-8 MySQL表中有一列。當我在PHP中以字符集= UTF-8頁面顯示字符串時,偶爾會得到一個Unicode字符( 或U + FFFD)。例如:在PHP和MySQL中的Unicode字符的問題

「這些調整都不影響現有的部隊結構或軍事能力,而且這些效率將進一步使美國歐洲司令部能夠爲高優先級的任務提供資源」,五角大樓新聞祕書海軍後方主任約翰柯比在發佈會上說。

我已經試過包裝我的字符串和html_entity_decode(),以取代任何Unicode字符,但沒有多少運氣:

$content = html_entity_decode(preg_replace("/U\+([0-9A-F]{4,5})/", "", $getstory[0]['content']), ENT_NOQUOTES, 'UTF-8'); 

作爲一個側面說明,不會用新發生此問題插入到此表格列中的數據只能使用較舊的數據。

有什麼建議嗎?

+0

什麼SHOW CREATE TABLE顯示該特定的表?您的編碼對於表格和/或列可能不是UTF-8。 – tadman

+0

字符集是UTF8,排序規則是utf8_general_ci –

回答

0

嘗試將您的php文件的編碼更改爲utf8。這可以在您的編輯器中完成,在Tools - Character Encoding處,並將其更改爲UTF-8。

如果找不到它,請在記事本中打開它,然後轉到文件 - 另存爲,當它提示要保存的位置時,在文件名稱下方,將會有一個選項可供選擇你想要保存文件的字符編碼。

**編輯: 它看起來像你想改變你的數據庫字符集。轉到phpmyadmin,那裏你可以改變它爲你的數據庫,併爲每個表分開

+0

我在我的php.ini文件中將default_charset更改爲utf-8並具有相同的結果。 –

+0

我編輯了我的答案。我沒有提到php.ini,而是提到了腳本文件本身,儘管我只是注意到你已經做到了。下一個可能的錯誤是在你的數據庫中。 – Geseft