2011-03-01 48 views
1

我正在將mysql數據庫從一個站點遷移到另一個站點。如何正確設置文件,數據庫,連接等的編碼?

其encodign:UTF8

其連接encodign:utf8_unicode_ci

該站點的PHP文件中使用的編碼:UTF8無BOM

在頭中的編碼在每一頁該網站:utf-8

一切工作正常,在該網站。

然後我使用phpmyadmin導出數據庫。 它生成一個.sql文件,用utf-8編碼,當我打開它時,一切都很好。

然後我將該文件複製到新站點,該站點對所有內容使用相同的編碼,並將其導入。

當我通過網頁顯示舊網站中的數據時,顯示的是破損的字符。例如:™=> 。

如果我將瀏覽器的編碼從utf-8轉換爲iso-8859-1,我會看到正確的符號。

新網站中的其他一切正常工作,我沒有編碼問題後,保存到數據庫的東西,並將其拉回。唯一奇怪的是,當我瀏覽存儲的數據時,phpmyadmin顯示破碎的字符。但是在網站上顯示內容時我沒有這個問題。

我做了導入兩個不同的程序:phpmyadmin和webmin。

所以我不知道這裏有什麼問題,有什麼想法嗎?

我應該如何配置編碼,這樣纔不會發生?

回答

2

也許在第一個站點中,您沒有設置連接編碼(請參閱php中的mysql_client_encoding()的輸出)。 如果這是您以不正確格式存儲數據的問題,並且您還使用相同的錯誤行爲正確地將其轉換回來。

p.s. utf8_unicode_ci不是一種編碼,是一種排序規則(如何訂購字符串)

+0

哇,你是個天才。舊網站的連接是'latin1'。謝謝! – HappyDeveloper 2011-03-01 17:50:37

0

這發生在我以前與舊網站,它是在不同的排序規則,所以一旦你試圖改變它爲UTF8它顯示了奇怪的符號遍。

有時phpmyadmin後臺顯示奇怪的代碼,但該網站顯示沒問題。

相關問題