SpringBoot更新数据到MySQL乱码

今天用springboot2写项目的时候发现了一个BUG,网页点击保存用户,然后将数据保存至数据库,发现数据库乱码了。下面我们来一步一步的排查

 

第一步、首先怀疑数据库没有采用UTF8编码。

SpringBoot更新数据到MySQL乱码

DB也是UTF8格式,没有问题。 

检查Mysql所有编码参数,发现character_set_server为latin1 ,我们全部修改成UTF-8
SpringBoot更新数据到MySQL乱码

 

 

第二步、后台编辑器的编码,也是UTF-8

SpringBoot更新数据到MySQL乱码

 

第三步、怀疑SpringBoot配置JDBC字符编码问题
application.properties修改为通过utf8连接mysql,但是问题依然没有解决。

SpringBoot更新数据到MySQL乱码

 

 

第四步、怀疑时网页编码的问题

我们手写一个存储

SpringBoot更新数据到MySQL乱码

直接写入没发现乱码,判断是网页编码的问题,我们修改网页编码为UTF-8,问题得到解决

SpringBoot更新数据到MySQL乱码

 

解决乱码的思路:数据库编码——后台编码——后台JDBC编码——网页编码

由于编码涉及到很多环节,每一个环节出现编码不对应,都将出现乱码问题,所以我们要排查每个环节的编码