MySQL 中出现的字符编码错误 Incorrect string value: ‘\x\x\x\x‘ for column ‘x‘

活动地址:CSDN21天学习挑战赛


问题出现的场景:
在MySQL中插入数据时使用中文,数据库就会报错,诸如: Incorrect string value: '\x\x\x\x' for column 'x' 这种错误,如下图:


原因:
在 MySQL 数据库中,它的默认编码方式是拉丁文,所以它不能识别中文,就需要把数据库给配置成支持中文的编码方式,也就是配置成 utf8 编码方式。


解决方法一:
1.先查看当前数据库的编码方式

show variables like 'character%';

如果是不支持中文,编码方式就会显示:

如果支持中文,编码方式就会显示:


2.通过修改 MySQL 配置文件的方式来解决问题: 

2.1 在电脑中搜索找到“服务”,找到MySQL。


右击属性,找到存放配置文件的地址。


2.2 找到 my.ini 文件,使用记事本打开,保险起见可以先备份然后进行修改。


2.3 打开 my.ini 文件,查找 [mysql] 和 [mysqld] 这两个标签,添加内容。


这里添加的内容可以是 utf8 也可以是 utf8mb4,两者的区别就是 utf8mb4 比 utf8 多了一些表情符号。
修改完后记得一定要保存!!!
2.4 修改完配置文件后,一定要记得重新启动 MySQL 服务器,或者重启电脑。
2.5 重启服务器后,记得把之前建立的不能支持中文的库删掉,重新建库,因为旧的数据库没有收到影响,依然还是不能支持中文。

解决方法二:
在创建数据库的时候可以直接加上语句:

create database if not exists xxx character set utf8mb4;

解决方法三:
如果不想删除数据库,也可以修改某个表中的字符编码方式:

alter table table_name convert to character set utf8mb4;

以上三种方法,建议使用第一种,只需要修改配置文件,之后的数据库都会支持中文编码,比较方便。但是切记修改完成后一定要重启MySQL或者电脑,这样修改才会生效。并且记得删库重建。
 

猜你喜欢

转载自blog.csdn.net/AlinaQ05/article/details/126102699