在mySql表中,我使用Latin1字符集將文本存儲在varchar字段中。由於我們的網站現在在更多國家得到支持,我們需要支持UTF8。如果我將這些字段更改爲UTF8,會發生什麼情況?這樣做是否安全,還是會混淆這些字段中的數據?當將字段更改爲UTF8時,是否需要考慮這些內容?MySql varchar從Latin1更改爲UTF8
謝謝!
在mySql表中,我使用Latin1字符集將文本存儲在varchar字段中。由於我們的網站現在在更多國家得到支持,我們需要支持UTF8。如果我將這些字段更改爲UTF8,會發生什麼情況?這樣做是否安全,還是會混淆這些字段中的數據?當將字段更改爲UTF8時,是否需要考慮這些內容?MySql varchar從Latin1更改爲UTF8
謝謝!
MySQL的處理這個問題很好:
CREATE TEMPORARY TABLE t1 (
c VARCHAR(10)
) CHARACTER SET ="latin1";
INSERT INTO t1 VALUES ("æøå");
SELECT * FROM t1; # 'æøå'
ALTER TABLE t1 CHARACTER SET = "utf8";
SELECT * FROM t1; # 'æøå'
DROP TEMPORARY TABLE t1;
編輯:還有是不能存儲爲UTF-8,所以你不應該得到任何dataloss
有不該」沒有Latin-1字符沒有任何數據庫問題。 MySQL將在您進行更改時處理編碼之間的數據轉換。
當您向網站添加對UTF-8的支持時,還需要注意其他事項。
SET NAMES utf8
來完成此操作。
謝謝!我正在使用Navicat,我可以(而不是您的解決方案)在設計表格模式下從Latin1更改爲UTF8嗎? (這將改變表) – Mrbiggerm 2010-06-23 09:40:10
我不知道Navicat,但我猜想它只是做一個改變表。請務必先備份你的表格:) – simendsjo 2010-06-23 10:07:51