2012-08-14 52 views
0

我有它的排序規則設置爲ut8_general_ci表。表中的列也被設置爲該編碼。與MySQL字符編碼問題 - 排序規則設置爲UTF-8,但文本保存爲ISO拉丁1

由於某些原因,當我在MySQL中查看我的表格時,表格中的文本被渲染/存儲爲ISO Latin 1,並且如果我不想編輯表格中的任何條目中的任何文本我必須使用ISO Latin 1編碼來確保文本在頁面上正確呈現(頁面用戶UTF8)。

手動輸入ISO拉丁1個文本表工作正常,但一對夫婦它是不工作的條目,即字符不被我的網頁上正確顯示(他們也沒有正確的,當我使用渲染UTF8)。因此,這個問題。如果我能弄清楚MySQL如何處理字符編碼,我可能可以對這個問題進行分類。

所以,問題是有人可以解釋MySQL處理的編碼,具體爲什麼我看到ISO拉丁語在我的表1個字符當覈對設置爲UTF-8。

+0

如何配置你的連接?機會是你的連接被設置爲處理latin1 ... – Romain 2012-08-14 14:21:20

+1

閱讀:[處理Unicode的前向後在一個Web應用程序(http://kunststube.net/frontback/) – deceze 2012-08-14 14:22:00

+0

只需鍵入「SET NAMES‘UTF8’」到您的查詢任何東西之前的MySQL控制檯。 – mvillaress 2012-08-14 15:11:14

回答

0

事實證明,儘管在頁面和表格以及表格的列上設置了字符編碼,但與表格的連接默認爲ISO拉丁語1.在查詢中添加了「SET NAMES utf8」 ,即

$pdo = new PDO('mysql:dbname=****;host=localhost', '****', '****', 
       array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')); 

這篇文章連接起來很有幫助。謝謝!