我即将承担将数据库从 Latin1 转换为 UTF-8 的繁琐且充满陷阱的任务。
此时,我只想检查我的表中存储了哪些类型的数据,因为这将决定我应该使用哪种方法来转换数据。
具体来说,我想检查 Latin1 列中是否有 UTF-8 字符,最好的方法是什么?如果只有几行受到影响,那么我可以手动修复它。
选项 1. 执行 MySQL 转储并使用 Perl 搜索 UTF-8 字符?
选项 2. 使用 MySQL CHAR_LENGTH 查找具有多字节字符的行?例如SELECT name FROM clients WHERE LENGTH(name) != CHAR_LENGTH(name);
,这就够了吗?
目前我已将 Mysql 客户端编码切换为 UTF-8。