在MySQL中,我有一個字符串,它在phpmyadmin中正確顯示,排序規則設置爲utf8_general_ci
。通過PHP從MySQL獲取UTF-8字符串返回「????????」
在PHP文件,我已經使用普通的HTML設置頁眉:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
PHP文件都在Ubuntu,Apache 2.2的託管,並且這些文件(使用記事本++)
保存在UTF-8 without BOM
我已經設置爲使用UTF-8的連接:
@mysql_query("set names 'utf8'", $this->link);
$r = @mysql_query($query, $this->link);
它返回的字符串(VARCHAR 255)和美國在PHP回顯中,它會顯示給瀏覽器。
但是,我仍然是?????而不是實際的單詞。
我似乎無法搜索我可能錯過的內容,非常感謝您的幫助。
=====編輯=====
數據庫,表和列可以有三種不同的排序規則,我已經將它們都以utf8_general_ci,並調用mysql_set_charset(「UTF-8」)立即連接後製成了,解決了我的問題。
我希望這將作爲一個有用的清單,爲未來的人碰到同樣的問題。我一個人可能會很好地在幾個月內回來檢查我是否錯過了任何東西:)
感謝所有的偉大的投入。
你確定它們被正確存儲嗎? – 2012-03-13 15:35:08
是否使用UTF-8管道插入數據?即使輸出管道始終是正確的utf8,數據庫插入之前/期間數據可能已損壞。 – 2012-03-13 15:35:11
你還有其他文字(不是來自數據庫)的正確或有問題的標記嗎? – 2012-03-13 15:43:38