我们可以利用convert函数转换编码从而解决此问题。
(推荐教程:mysql数据库学习教程)
CONVERT()提供一个在不同字符集之间转换数据的方法。
语法:
CONVERT(expr USING transcoding_name)
例如:
SELECT CONVERT(latin1field USING utf8) FROM latin1table;
在 MySQL中转换代码名与相应的字符集名相同。
举例:
学生表
下面我们将学生表的查询结果导出到Excel文件
select * from student_grade into outfile 'D:/Files/student.xls';
此时,生成的Excel文件出现了乱码。
这是因为student表是采用utf8编码(可以用show create table student;语句查看一下),而Excel文件则是GB2312编码。
所以我们采用convert将中文字段转换成gbk编码:
select sid, convert((sname) using gbk) as sname, convert((gender) using gbk) as gender,class, convert((major) using gbk) as major from student into outfile 'D:\Files\student.xls';
这样就不会出现乱码了。