2010-10-07 168 views
1

我正在從我的博客中將文章從mysqlDb中檢索到我的網站。這些文章在博客上顯示得很好,但在網站上,一些字符(如ţ,ş,ă等)被替換爲帶有問號的黑色方塊。我在文檔上設置的「UTF-8」與博客上的相同。特殊字符問題

回答

4

你需要告訴MySQL的連接必須以UTF-8進行一些進一步的閱讀。爲此,請使用功能mysql_set_charset(您需要PHP 5.2.3)。如果你使用PHP 5.2.3 <嘗試:

mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn); 

還要確保標題告訴該文件是在UTF-8(header功能和/或HTML meta標籤正確設置)。

還要確保你的PHP文件保存在UTF-8 沒有 a BOM

+0

mysql_set_charset()這是!非常感謝! – andrei 2010-10-07 13:32:12

+0

是的,這是一個常見的陷阱。如果你不這樣做,MySQL會將數據即時轉換爲latin1(相當於utf8_decode)。 – AlexV 2010-10-07 13:33:48

2

你是如何將這些字符添加到文檔中的?根據編輯器的不同,保存時編碼可能會偏斜。除了使用PHP頭指定編碼之外,您是否使用META將頭文件類型設置爲HEAD?

下面是關於這個問題的http://htmlpurifier.org/docs/enduser-utf8.html