将 MySQL 列从 latin1 列转换为 UTF8 的最快方法是什么,其数据实际上是 UTF8?

将 MySQL 列从 latin1 列转换为 UTF8 的最快方法是什么,其数据实际上是 UTF8?

我有一个 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

相关内容