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

 更新时间:2024年08月07日 11:45:34   作者:Eric-x  
当将xls或xlsx文件转换为CSV并导入数据库时,可能出现乱码,原因是编码格式不是UTF-8,解决方法是使用Notepad或记事本打开CSV文件,所以本文给大家介绍了MySQL导入.CSV数据中文乱码的解决方式,需要的朋友可以参考下

这是因为编码问题,我们将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中文乱码的资料请关注脚本之家其它相关文章!

相关文章

  • MySQL配置SSL主从复制

    MySQL配置SSL主从复制

    本文给大家分享的是如何给mysql配置SSL主从复制的具体方法,分别给出了5.6和5.7两个版本的实例,希望大家能够喜欢
    2019-01-01
  • MySQL Order By用法分享

    MySQL Order By用法分享

    本文用实例一点一点告诉你,MySQL order by的用法
    2012-07-07
  • 有关mysql优化的一些东东整理

    有关mysql优化的一些东东整理

    有关mysql优化的一些东东,自己整理的,网上搜集的,供朋友们学习参考吧
    2013-02-02
  • mysql中的delete,drop和truncate有什么区别

    mysql中的delete,drop和truncate有什么区别

    这篇文章主要介绍了mysql中的delete,drop和truncate有什么区别,三者的用法和使用场景又完全不同,接下来我们来看看具体的区别吧,希望对你的学习有所帮助
    2022-06-06
  • Mysql执行原理之索引合并步骤详解

    Mysql执行原理之索引合并步骤详解

    这篇文章主要介绍了Mysql执行原理之索引合并详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • Mysql进行操作时锁的具体行为示例详解

    Mysql进行操作时锁的具体行为示例详解

    MySQL锁的使用需要根据具体的应用场景来选择,例如,如果应用以查询为主,少量更新,表锁可能是更合适的选择,这篇文章主要介绍了Mysql进行操作时锁的具体行为,需要的朋友可以参考下
    2025-09-09
  • mysql中json类型字段的基本用法实例

    mysql中json类型字段的基本用法实例

    大家应该都知道mysql中的字段可以使用json的格式来进行存储,下面这篇文章主要给大家介绍了关于mysql中json类型字段的基本用法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • MySQL配置文件my.cnf中文版对照

    MySQL配置文件my.cnf中文版对照

    MySQL配置文件my.cnf中文版,使用mysql的朋友可以参考下,了解每个参数的重要性。
    2011-09-09
  • CentOS中mysql cluster安装部署教程

    CentOS中mysql cluster安装部署教程

    这篇文章主要介绍了在CentOS 6.3系统上搭建MySQL Cluster 7.2.25集群的相关资料,需要的朋友可以参考下。
    2016-11-11
  • MySQL笔记之字符串函数的应用

    MySQL笔记之字符串函数的应用

    字符串操作在程序设计中是非常重要的组成部分,而MySQL数据库中的字符串操作却相当简单
    2013-05-05

最新评论