【发布时间】:2011-09-05 05:23:32
【问题描述】:
我需要将我的一个数据库中的所有表从 latin1 更改为 utf-8(使用 utf8_bin 排序规则)。
我已经转储了数据库,从中创建了一个测试数据库,然后运行以下命令,每个表都没有任何错误或警告:
ALTER TABLE tablename CONVERT TO CHARSET utf8 COLLATION utf8_bin
在真实数据库上重复此操作对我来说安全吗?通过检查数据似乎很好......
【问题讨论】:
-
不知何故,我认为转换还有很多...过去,我们总是不得不转储和重新整理数据。
-
是的,这就是我害怕的!我见过大约 100 个 PHP 脚本用于转储表、正则表达式 latin1,然后重新插入它。如果可能的话,我很想避免这种情况,而且我几乎可以肯定所有数据当前都是正常的字符(想想 ASCII 字符集),但并不真正了解 MySQL 如何存储和转换它。
-
你为什么不把一些极端情况的例子放到一个示例数据库中并尝试转换......
-
我认为如果将所有内容都变成 blob,进行转换然后将其转回原处,您就可以做到这一点 - 请参阅 dev.mysql.com/doc/refman/4.1/en/charset-conversion.html
标签: mysql character-encoding collation