引言
在一次db2表中数据导入到mysql数据库操作中出现了中文乱码的情况,AIX编码格式是GB18030,db2数据库编码格式是GBK,Linux和mysql都是UTF-8的编码,两边编码不一致导致了中文乱码的问题。
正文
1.第一次尝试在db2数据库中导出数据直接用了export命令导出
export to tablename.del of del select * from tablename
然后mysql数据库中使用了load data导入,导入命令中设置了utf8编码
load data local infile "tablename.del" into table newtablename character set utf8........
最后发现导入中文乱码。
2.第二次尝试在db2数据中导出数据设置了UTF-8编码导出
export to tablename.del of del modified by codepage=1208 select * from tablename
在mysql数据库中导入没有再使用UTF-8的编码设置了,最后发现导入中文乱码。
3.第三次尝试db2数据库中导出没有设置编码,以默认形式导出,然后把文件传到Linux中后使用iconv对文件编码进行了转换输出
iconv -c -f gbk -t utf-8 tablename.del -o newtablename.del
然后再次导入到mysql,发现还是乱码。
4.最后尝试db2数据库默认导出文件后,在mysql中导入把编码格式设置成gbk中文就没有乱码了。