今天跟着慕课SpringBoot练习的时候,数据库插入中文遇到了编码错误问题,
.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1366, SQLState: 22001
保存中文数据,发现在数据库中显示为???
最后上网一一排查,解决了这些问题。
参考的文章如下:https://blog.youkuaiyun.com/blueheart20/article/details/52385142
文中的环境是在centos下的,我的问题是在windows下的。
排查过程如下:
1. IDE的编码,是否为UTF-8。
解决方案:
以IDEA为例,File->Settings->Editor->FileEncodings,三个关于编码的属性,
FileEncoding,ProjectEncoding,Default encoding for properties全部换成UTF-8
2.代码里的数据库连接URL尾部是否加上了编码设置,&characterEncoding=utf-8
解决方案:jdbc:mysql://localhost:3306/luckymoney?serverTimezone=GMT%2B8&characterEncoding=utf-8
3.本地MySQL的编码格式是否为UTF-8
解决方案:在控制台中,登入mysql,使用show variables like 'char%';命令去查看本机