2011-08-22 120 views
2

我有一個包含西班牙字符的數據庫。填充數據庫我從客戶端頁面獲取的字符編碼= UTF-8的值。當我在mySql數據庫中插入值時,行包含更改的數據。例如,如果我插入'墨西哥',數據庫中的條目是'México'。這種影響是當我在表上指定'墨西哥'的查詢,我沒有得到任何結果。我的問題是如何在MySQL數據庫中插入西班牙語或其他拉丁語口音?我試過所有的排序規則,htmlentities()等,但沒有任何工作! 當進行mysql查詢我檢查了什麼數據正在發送,它是正確的形式'墨西哥',但是當我通過phpmyadmin看到表條目,它的改變!MySql西班牙字符數據

+0

您的表格的字符編碼可能不是UTF-8。 – Gumbo

+0

我的表整理是utf8_general_ci ...這是一樣的嗎?我的意思是字符編碼和整理是一回事嗎? – samach

+0

[整理和字符編碼是不同的事情。](http://dev.mysql.com/doc/refman/5.0/en/charset-general.html) – Gumbo

回答

5

將您的mysql數據庫/表/列編碼更改爲UTF-8(並將排序規則設置爲兼容值)。

ALTER TABLE mytable CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; 
ALTER TABLE mytable 
MODIFY country CHAR(50) 
CHARACTER SET utf8 COLLATE utf8_general_ci; 

同時指定連接時PHP端的字符集。

mysql_set_charset('utf8',$conn); 

看看this article進一步的信息和腳本批量更改數據庫中的每個表/列。

+0

感謝一堆安東尼!! – samach

+0

我很高興成爲服務;) –

+0

安東尼我不能查詢我的數據庫插入項目後的數據庫...我喜歡的價值不符合我提供的和數據庫中的一個!我也發佈這個問題在這種形式...不要knw hw發佈鏈接 – samach

0

檢查兩件事情第一:

  • 你插入的數據爲UTF-8?如果數據來自網頁,請確保頁面的編碼設置爲UTF-8(編碼元標記設置在頁面標題中)。
  • 你確定數據沒有保存爲Unicode嗎?這是相反的情況:如果phpMyAdmin使用除UTF-8以外的其他內容,則會在顯示內容時看到亂碼字符。
+0

插入之前我回聲的數據和其所需的形式...對不起,我dint得到你的第二點...我是否檢查數據是否保存爲Unicode或nt? – samach

+0

如果頁面的編碼錯誤,回聲數據不一定會告訴你任何事情。 – JJJ