Convert
如何:转换旧式编码的MySQL数据库到UTF-8
最近帮公司的一个客户做了一个数据库迁移,客户声称数据是 utf-8
的,然而在使用过程中出现了许多乱码,检查发现数据并非 utf-8
,而是 utf-8
编码之后的 big5
,而排序方式更是混乱不堪的默认的utf8-swedian-ci
。
MySQL的国际化支持很差。MySQL从 4.1 版本开始大刀阔斧地进行了不兼容的改动,简单地说,这些改动让相当多的操作默认以UTF-8进行,然而这会给旧的应用程序带来很多问题。许多文献推荐使用 SET CHARACTER SET
作为 workaround,尽管这能够解决一些问题,但这种做法本质上会导致 MySQL 进行额外的转换,因此并不是十分理想。