尝试快速将latin1 mysql数据库转换为utf8,我尝试了以下内容:
这个主要是除了...... 一些字母转换错误之外(例如:大写重音' U'变成一些乱码序列,以a开头问号)。正在进行一些转换(查询结果显示latin1字节所在的两个字节序列)并且te latin1版本正常。虽然到目前为止我一直没有系统地隔离问题(深夜;在截止日期之前;等等),但问题的怪异性使我丧命:为什么它会在某些字母上失败而不是全部?客户端连接?列charset?为什么我没有得到任何诊断?我受阻了。
当然,我可以努力隔离问题及其细节,但是想到也许有人已经碰到了这个并且可以通过这个(可以说是相当差的)描述来识别它。
干杯
答案 0 :(得分:0)
数据可能已经存储为latin1但是您用来转储数据的客户端可能已经将其导出为UTF-8。
在合适的文本编辑器(Notepad ++,TextWrangler,Atom)中打开转储文件,并检查哪种编码允许正确显示所有字符。
然后,当重新导入数据时,请确保您的客户端设置为在导入上使用UTF-8。
答案 1 :(得分:0)
不要使用iconv,这只会让作品变得混乱。
假设一个表被声明为latin1并且正确包含latin1个字节,但您想将其更改为utf8,请执行以下操作:
ALTER TABLE tbl CONVERT TO CHARACTER SET utf8;
也可以通过转储和重新加载来完成;它涉及对参数的一些改变。对不起,我没有详细信息。