mysql字符集从latin1转到utf8的问题
我打算将mysql服务器从4.1升级到5.0,同时将原来默认的字符集latin1转换到utf8。
现在采用的方法是先用mysqldump导出数据库中的数据,然后使用ultra edit将文件存储格式从ASCII转换为utf8,再将文件中的latin1字符串替换为utf8,最后导入数据库。
但是这个过程遇到一些问题有:在转换过程成一些字符串变成乱码,同时丢失后半个单引号导致数据不能导入。修改这些错误耗费很长时间,同时反复的导入也非常耗费时间(数据库每个有200M左右,一共有7个数据库),我想询问一下mysql有没有自带的工具或命令可以直接对数据库中存储的数据进行编码转换?如果没有,使用什么方法比较简单,可靠?
还附带想问一个mysql 5.0 的问题。开始使用mysql5.0.18和mysql5.0.22,发现这个版本语法非常严格,尤其对一些非空值和自动增量的语法和检验,导致从前的程序可以正常读出内容但是却无法进行插入和修改操作,必须对所有原有程序进行重新编写。最近使用5.0.26版本时突然发现从前的数据不经修改可以直接导入(一些非空字段插入空值没有报错),数据的插入和修改操作还没来得及做实验。是不是这个版本又重新添加了对4.X的兼容特性?