我最近將一個存儲爲latin1_swedish_ci的舊MySQL數據庫轉換爲utf8_general_ci。現在我已經獲得了指定UTF-8(頁面上的HTML標記)的HTTP標頭,並且數據庫中的數據正確編碼爲utf8_general_ci。不同版本的PHP,Apache和MySQL之間的字符編碼問題
它在我的測試服務器上正常工作,因此我將更新的HTML文件和PHP腳本上載到活動服務器上的臨時區域。然後,我用測試數據庫中的導出來替換舊的臨時數據庫。
現在,在分段網站上有unicode實體,而不是每個撇號。
相同的數據庫,相同的代碼,但它不起作用。
測試服務器,並暫存區域之間的區別是,測試服務器如下:
測試:
- 阿帕奇2.2.15
- PHP 5.3.2
- MySQL 5.1中
分期:(是的,這是可怕的過時,但它超出了我的控制)
- 阿帕奇37年3月1日
- PHP 5.2.3
- 的MySQL 4.1.15
任何想法是什麼原因造成它不工作的臨時服務器上?
您是如何執行從測試數據庫導出到臨時數據庫的導出的? mysqldump的? phpMyAdmin的? – Charles 2010-06-23 21:12:10
'latin1_swedish_ci'和'utf8_general_ci'不是字符編碼,它們是排序規則 - 它們控制着在數據庫中如何排序。 ref:http://dev.mysql.com/doc/refman/5.5/en/charset.html – 2010-06-24 02:46:28
@Charles:PHPMyAdmin – Macha 2010-06-24 06:16:11