在mySql表中,我使用Latin1字符集在varchar字段中存储文本。由于我们的网站现在在更多国家/地区得到支持,我们需要支持UTF8。如果我将这些字段更改为UTF8会发生什么?这样做是安全的还是会弄乱这些字段中的数据?在将字段更改为UTF8时,我需要考虑一下吗?
谢谢!
答案 0 :(得分:5)
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;
编辑:并且没有latin-1字符无法存储为utf-8,所以你不应该得到任何dataloss
答案 1 :(得分:1)
数据库前端应该没有任何问题。 MySQL将在您进行更改时处理编码之间的数据转换。
当您向网站添加对UTF-8的支持时,您还需要注意其他事项。
SET NAMES utf8
来执行此操作。