我有一個像這些在我們的網站特點:FémnyomóPHP和MySQL將不爲Unicode
這是一個街道地址,在另一種語言中輸入(雖然我不知道是哪個)。這裏的DB設置:
mysql 4.1.2log
charset cp1252 West European (latin1)
我使用PHP,但沒有mbstrings()(雖然我對這個地址的字符串轉換,只是回聲)。
如果我將mysql字符集從cp1252更改爲UTF-8並確保我使用了諸如header('Content-Type: text/html; charset=UTF-8');
之類的東西,那會改善我的情況嗎?或者,數據是否因爲它保存在cp1252字符集中而沒有任何結果?原始數據庫創建於2002年,自那以後一直使用/擴展。我們已經升級了服務器並重新導入了轉儲文件,但我很慚愧地承認我沒有多加考慮。
如果我被弄壞了,我可能會刪除那些字段中的文本,但我希望支持unicode前進,所以如果我發出ALTER database_name DEFAULT CHARACTER SET utf8;
會確保未來的多字節編碼被正確保存,等式中存儲量最少(讓我擔心PHP)?
謝謝 -
感謝。我已經完成了所有5個步驟,但仍然得到相同的結果。爲了消除可能性,我連接到本地主機上的mysql監視器(此框正在運行MySQL 5.1.41-3ubuntu12.3-log),並將它們設置爲utf8(使用'show variables'反映) - character_set_client,character_set_connection,character_set_database ,character_set_results,character_set_server,character_set_system。結果是一樣的 - 這是直接從MySQL監視器:FAN©mnyomó³1 – Hans 2010-08-22 09:33:54
在步驟5中的鏈接可能最終會成爲我所做的。我可能只需要通過這些地址並手動更改它們(將所有內容轉換爲UTF-8後)。在將數據庫轉換爲UTF-8之後,是否有任何危險,我最終會使用舊版latin1字符集中的這些字符? – Hans 2010-08-22 09:35:23
對於您提到的危險,請備份數據庫。如果你搞砸了任何東西,你可以恢復。 – shamittomar 2010-08-22 09:45:37