在mysql导入导出数据时经常出现中文乱码的问题,大多是因类导入导出时编码设置不一致所引起的。本文介绍了不同平台下的编码转换方法,供大家参考。 在linux系统中默认的是utf8编码,而windows是gbk编码,如果在这二个系统间导入未经指定编码的数据,就会出现乱码。 首先,确定导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8,
例如: mysqldump -uroot -p --default-character-set=utf8 dbname tablename > bak.sql
那么导入数据时也要使用--default-character-set=utf8: mysql -uroot -p --default-character-set=utf8 dbname < bak.sql 统一编码后,mysql数据迁移中的乱码问题就解决了。 使用windows作为导出数据源,并导入 freebsd环境下的mysql库,解决方法详解。 导出数据
一、首先,在windows平台下mysql用作导出数据库源。 代码示例:
mysql> show variables like ‘%char%'; 查看character_set_database,这里是latin1,latin1是装不了多字节字符集的。
二、在windows下设置系统变量为utf8 mysql>set character_set_database=utf8; ##设置默认的字符集为utf8
三、导出数据
mysql> select * from table into outfile ‘c:table.txt' where +条件 这时导出了部分数据,并以txt文件存在 table.txt中。 导入数据 在freebsd平台下
一、同样设置字符编码的系统变量 代码示例:
mysql> show variables like ‘%char%';
二、转载数据 mysql>load data local infile ‘/home/table.txt' into table `table`;
至此、条件数据完整导入导出,并处理了乱码的情况。 解决方法三
乱码解决方法 show variables like 'char%';
如果不是GBK或UTF8,则停止mysql服务,然后到安装目录修改my.ini文件,
[mysql]
[mysqld] 重新启动服务,重新导入数据,如果还乱码,只要把导入与导出编码统一即可解决问题。 |