中文更新mysql乱码

2019-12-15  本文已影响0人  逢栲怭過

1.问题描述
> 1366 - Incorrect string value: '\xE6\xB5\x8B\xE8\xAF\x95' for column 'name' at row 1
在更新mysql的时候中文报错这个,一看就是因为字符编码导致的,下面是排查过程,简单记录下,

1.1检查库的字符编码

     show variables like 'character_set_database'   //检查库编码
     ALTER database test character set utf8;      //修改库编码

1.2检查表字符编码

SHOW CREATE TABLE tbl_name;
alter table test_user character set utf8;

1.3检查字段编码集

show full fields from test_user
ALTER TABLE test_user CHANGE name name VARCHAR(16) CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE 表名 CHANGE 字段名 字段名 VARCHAR(16) CHARACTER SET utf8 COLLATE utf8_general_ci;

1.4如果还是中文乱码,检查代码里面url是否配置了字符编码格式
以spring boot为例
在application.properties中
spring.datasource.url =jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
是否咋最后有加?useUnicode=true&characterEncoding=UTF-8这段配置

1.5.如果还是乱码,检查前端传入参数是否已经乱码,这个可以通过打印出来的日志就可以看到,具体就不再阐述

上一篇 下一篇

猜你喜欢

热点阅读