2023年12月7日发(作者:)

mysqloutfile中文乱码_mysql使用selectintooutfile的乱码问题

解决

最近在使用select * into outfile '' from user;的时候发现一个问题,

user表是utf8编码,excel默认编码格式是GBK,excel直接打开时候是一堆乱码。

后来想了一个办法中转,先保存成为txt格式,excel打开txt时候会提示选择用哪种编码方式打开,选择utf8解决。

脚本如下:

SELECT a.*

INTO OUTFILE ''

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'

LINES TERMINATED BY 'n'

from user a;;

但是这样太麻烦,有没有更简单一点导出时候直接转换成gbk呢。

后来想到

在mysql客户端设置编码格式

set names gbk;

select * from user;

但是此时中文展示的乱码,或者提示

Error Code: 1270

Illegal mix of collations (utf8_general_ci,IMPLICIT), (gbk_chinese_ci,COERCIBLE), (gbk_chinese_ci,COERCIBLE) for operation

'case'

看来此方法行不通,

后来在网上找到解决方案。

导出时候加上CHARACTER SET gbk即可。例子如下:

SELECT a.*

INTO OUTFILE ''

CHARACTER SET gbk

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'

LINES TERMINATED BY 'n'

from user a;