2012-03-12 50 views
0

我們從另一臺服務器導入了一個網站到我們的服務器。代碼和數據庫是100%相同的。 但網站上的文字似乎有錯誤的編碼。網站/數據庫文本編碼問題

例如: 在數據庫中,「澳大利亞」一詞是「澳大利亞」,而在澳大利亞網站上則顯示澳大利亞文。 我可以修復??添加mysql_set_charset(「utf8」,$ this-> db);數據庫連接後。 但是那麼它的數據庫顯示如「澳大利亞」,這是不正確的。我在apache,數據庫和元標記之後嘗試了不同的編碼。

最簡單的方法是更改​​數據庫中的數據,但要做到這一點需要大量數據。

任何人都有這個問題的解決方案?幾個小時來一直在尋找和嘗試很多東西。

+0

什麼是列數據類型? – 2012-03-12 13:05:03

+0

你的意思是說舊數據庫已損壞? – 2012-03-12 13:15:15

+0

該表是utf8_unicode_ci。它在所有有文字的桌子上。舊的數據庫沒有損壞,但我認爲它的數據不是utf8,而表類型是utf8。我認爲這是合乎邏輯的,例如澳大利亞是以澳大利亞的數據庫而不是澳大利亞的形式保存的。 – Jeffrey 2012-03-12 14:10:52

回答

1

你可以嘗試:

  • 設置了MySQL連接校對在數據庫中uft8_general_ci
  • 運行SET NAMES 'utf8'SET COLLATION_CONNECTION=utf8_unicode_ci在你的PHP文件
  • 確保所有的PHP文件被保存UTF- 8編碼且不具有BOM
  • 請確保表中的單元格是utf8_general_ci
  • 確保MySQL字符設置爲UTF-8 Unicode(utf8)

這就是我所擁有的。通過這個設置,我可以看到數據庫中的所有字符(phpMyAdmin),因爲它們確實出現在網站上。

我也遇到過類似的問題,當我有編碼的不匹配,也就是我的數據保存到由ISO-8859-1編碼的網站UTF-8數據庫...

希望這有助於你。