当前位置: 代码网 > it编程>数据库>Mysql > MySQL导入.CSV数据中文乱码的解决方式

MySQL导入.CSV数据中文乱码的解决方式

2024年08月08日 Mysql 我要评论
这是因为编码问题,我们将xls或者是xlsx转换为 csv格式后,编码并不是utf-8,导致存放到数据库的数据就会出现乱码问题解决方式选择csv文件,使用notepad或者是记事本打开然后设置编码格式

这是因为编码问题,我们将xls或者是xlsx转换为 csv格式后,编码并不是utf-8,导致存放到数据库的数据就会出现乱码问题

解决方式

选择csv文件,使用notepad或者是记事本打开

然后设置编码格式为:utf-8即可

拓展一:mysql导出scv文件乱码、蹿行

工作原因,常常不能实现完全的线上化(即,所有数据都在线上完成,不需要导入导出),而导出excel常常比修炼成仙还慢,因此,我们将数据库文件导出到本地使用的时候,常常使用的方法的是导成csv格式。而csv格式的也常常出现导出的中文乱码,或者蹿行等问题,从而陷入两难境地。老板要数据,你却导不出来,急死人了。

1.问题:我们原本要把如左图所示的数据库中的数据导出成他原本的样子,无奈成了右边的乱七八糟的东西;

2.解决:

a:原本怎么导出为csv的还是怎么导;

b:选中你导出的csv文件,右键选择打开方式为【记事本】;

c:文件-->另存为-->编码选择utf-8-->保存;(文件名和保存类型都不需要改,点击保存之后会提示该文件已存在,是否替换,选择【是】就好)

d:打开刚刚保存的文件,只是这次选择打开方式为excel,然后数据就会像你数据库里的样子一样,干干净净(如下图)。

拓展二:

导入源数据

load data local infile 'e:\\stocks.csv' 
into table `stock_info_tb` 
fields terminated by ',' optionally enclosed by '"' escaped by '"' 
lines terminated by '\r\n'

乱码结果

修改sql

load data local infile 'e:\\stocks.csv' 
into table `stock_info_tb` character set utf8
fields terminated by ',' optionally enclosed by '"' escaped by '"' 
lines terminated by '\r\n'

这个utf8是根据导入的csv文件编码来决定的,可以通过文本编辑器把要导入的数据修改一个自己喜欢的编码,然后这个一致就ok。
这样修改后,仍然是乱码,有些崩溃的。

查看与修改表信息

表对中文是否支持运行:

show full columns from `stock_info_tb`;  
或
show create table `stock_info_tb`;

结果显示:

create table `stock_info_tb` (
  `type` varchar(10) character set latin1 default null,
  `bourse` varchar(2) character set latin1 default null,
  `stock_id` int(11) not null,
  `stock_name` varchar(10) character set latin1  default null,
  primary key (`stock_id`)
) engine=innodb default charset=utf8 collate=utf8_bin

发现要导入来的type,stock_name两个列为latin1字符集,修改为utf8为:

/*ddl 信息*/------------
create table `stock_info_tb` (
  `type` varchar(10) collate utf8_bin default null,
  `bourse` varchar(2) character set latin1 default null,
  `stock_id` int(11) not null,
  `stock_name` varchar(10) collate utf8_bin default null,
  primary key (`stock_id`)
) engine=innodb default charset=utf8 collate=utf8_bin

再运行

load data local infile 'e:\\stocks.csv' 
into table `stock_info_tb` character set utf8
fields terminated by ',' optionally enclosed by '"' escaped by '"' 
lines terminated by '\r\n'

结果

喜欢这个样的结果。

以上就是mysql导入.csv数据中文乱码的解决方式的详细内容,更多关于mysql导入.csv中文乱码的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com