因为不知道什么时候的原因,我们有一个数据库超级无赖的具有了无敌的特性:数据表的编码是Latin1-swXXXX什么的。而保存在里面的中文又是php强制以utf8保存在其中。因此,出了各种乱七八糟的怪里怪气的毛病。让我等对于mysql这种数据库本就没有什么爱的人深感恶心。
因此,今日在研究之下终于解决此问题。再次说明,本文是把latin1转为utf8。
问题的核心还是在于要改变已有保存字符的混乱问题,最彻底和便捷的方法就是直接导出,然后再以对应所需的字符导入。
为了能够正确的导入,我们必须要确保导出的数据在你的文字编辑器下能够正常显示中文。对于我们这次的这个数据库,我们最终的导出语句是:
导出后你就自觉的先看看中文显示正不正常吧,如果不正常就回去改个编码继续导。。。。
如果正常,继续:
现在要准备导入,但是导入的工作之前有个预备工作要做,如果你之前只导出一个表。那修改你导出的文件中的这一行:
如果不幸你导出的是整个有很多不同编码的数据表的数据库,ok。请使用替换工具把原来有的各种编码都替换成你要的目的编码。我这里原来有utf8和latin1,所以只需要把Latin1全部替换成utf8即可。
之后新建一个要导入数据的数据库:
OK,现在可以导入数据表了:
这样,导回去以后世界就清静了。回顾以前,原来一直不大成功都是因为我们没有去修改.sql文件里面的那些编码设置。这次终于好了。这个破数据库,麻烦死了。我以后写程序绝对不用mysql了。。。。。
最后附带一些mysql操作字符集的时候会用到的命令,都是从网上收集的: