小编给大家分享一下如何解决mysql导入文件中文乱码的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
mysql导入文件中文乱码的解决办法:首先创建数据库并制定编码;然后在导入数据库文件之前,制定编码set names utf8即可。
继续昨天的问题,数据库配置好后,查询表发现中文乱码了,看了网上的几个方法也没解决。
感觉是导入的sql文件问题,那么逆向的思考,用命令创建个数据库,添加些数据,然后导出来看看什么情况。
向表内插入数据的时候发现报错:
ERROR 1366 (HY000): Incorrect string value: '\xE6\xB5\x8B\xE8\xAF\x95' for column 'bookname' at row 1
果断再改,通过命令:alter table book change bookname bookname varchar(32) character set utf8;
改完后也不看了,直接插数据试试:
insert into book
(id,bookname,size,price)
values
(1,"测试",2,3)
那么开始进行下一步,导出sql文件,进入到mysql的bin目录下,开始通过命令导出,这个过程需要输入密码
E:\mysql-5.7.28-winx64\bin>mysqldump -u root -p test > test.sql
Enter password: *******
导出的文件,表的编码格式utf8,与之前导入文件的比较并看不出什么问题。
那么,就是之前导入文件的过程,创建数据库的过程除了问题,查看之前导入的mydb.sql 的mydb数据库结构,果然不对:
mysql> use mydb;
Database changed
mysql> show variables like 'character_set_database';
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| character_set_database | latin1 |
+------------------------+--------+
1 row in set, 1 warning (0.00 sec)
遂修改之:alert database mydb character set utf8;
大型站长资讯类网站! https://www.0818zz.com