我有一个 MySQL 表,其中有许多列采用 latin1 字符集。由于驱动程序问题,这些列实际上包含 utf8 数据。我想保留数据原样,但将列字符集更改为 UTF8。
我检查过的每个解决方案都会执行两个 alter table 命令,将列更改为二进制,然后使用新的字符集返回到以前的类型。
多个数据库中的多个表上有多个列,因此这种方法会非常慢。
有没有更好的方法来完成这个任务?
答案1
最快的方法可能就是执行 mysqldump 并导入,并设置特定的标志。查看此博客:http://blog.hno3.org/2010/04/22/fixing-double-encoded-utf-8-data-in-mysql/
这里列出了一些其他替代方法:http://en.gentoo-wiki.com/wiki/Convert_latin1_to_UTF-8_in_MySQL