2012-05-26 70 views
0

我複製粘貼另一網站的某些段落和結果有問號在它如運行到字符集問題第一次

animal�ideally 

我的服務器設置爲ISO-8859-1顯然和我的meta標籤正在將charset設置爲utf-8。

我從來沒有與字符集工作,不知道它是什麼,除了我一直在研究它是什麼。

如果我退出的內容從數據庫或直接在提交它包含的?分數。我必須採取什麼程序或行動才能使這些問號消失?

閱讀其他職位的mysql_query說做

mysql_query("SET NAMES 'UTF8'); 

我這樣做,它仍然沒有幫助。

我該怎麼辦?謝謝。

+1

如果您的服務器「設置爲iso-8859-1」,並且顯示爲「utf-8」,則可能存在一些問題。服務器編碼也設置爲UTF8。 –

+2

請務必閱讀[在Web應用程序中正面處理Unicode](http://kunststube.net/frontback/)。我猜你需要明確地從代碼中發送'Content-Type:text/html; charset = utf-8'頭文件。 – DCoder

+0

嘗試將排序規則更改爲utf8_bin – swapnesh

回答

1

顯示在您的網頁UTF8字符,則需要設置字符集爲您的頁面:

<meta charset="utf-8"> 

,如果你想這樣的字符保存到數據庫中,數據庫是UTF8也:

CREATE TABLE foo 
(
    id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, 
    ... 
) CHARACTER SET utf8 COLLATE utf8_general_ci 

您還需要將php設置爲utf8:(頂部)

header("Content-Type: text/html; charset=UTF-8\n"); 
+0

謝謝你的回覆。原來問題是我在將數據放入數據庫之前對數據進行了處理,這會破壞數據。出於某種原因,它不知道如何從htmlentities重新解釋它,任何解決方案? – Darius

+0

爲什麼你稱爲htmlentities?是否有理由將所有適用的字符轉換爲&#xx;類似的值?如果你想反過來,你可以調用你的字符串的html_entity_decode($ data)把它們放回去。 – 2012-05-27 08:11:06

+0

偉大的提示,謝謝。我使用的是破解utf8的htmlentities,而htmlspecialchars與您的修復一起工作。當我試圖保護用戶輸入內容時,我不知道htmlentities是不必要的:D – Darius