mysql插入中文报错java.sql.SQLException: Incorrect string value: '\xE6\x98\x88\xE8\xAE\xA152' for column

在往mysql数据库的表中插入中文数据的时候如果提示:

Incorrect string value: '\xE4\xBC\x9A\xE5\x91\x98' for column 'recipient' at row 1

  这个问题困扰了我三个多小时才解决,一开始去改mysql的varialbles参数 字符编码,发现根本就没作用,!!!

mysql查询variables参数sql

show varialbles like 'character%';

  可以百分百肯定是因为数据库表的编码格式不对造成的,这是因为utf8的编码是由三个字节组成的,但是遇到4个字节长度的中文字就会插入异常了,这是长度不够的原因,那怎么办呢?这时候我们就要用到utf8mb4这个编码了,utf8mb4utf8的超集,除了将编码改为utf8mb4外不需要做其他转换


解决办法:

    一般情况下我都是用sqlyog去连接数据库的,所以我们直接在这软件上将数据库的编码直接改成utf8mb4就可以啦,右击数据库-->选择改变数据库


将字符改为utf8mb4就ok啦,在看看是不是将乱码的问题解决了呢


如果问题依然存在,在mysql的安装目录下找到my.cnf文件,

在[client]节点下添加  default-character-set=utf8mb4

在[mysqld]节点下添加  character-set-server=utf8mb4

如图


     



猜你喜欢

转载自blog.csdn.net/qq_27184497/article/details/80819395