springboot乱码问题排查思路解析
引言
我们在使用springboot项目开发过程中,会遇到中文保存到数据库后出现乱码的问题,这里以mysql为例介绍几个排查思路
1. mysql的数据库表的字符编码格式不是utf-8导致
可以通过以下的语句来查看数据库表的创建语句
show create table tableName;

如果不是UTF-8的,修改表的默认字符集和所有列的字符集语句
ALTER TABLE table_name CONVERT TO CHARACTER SET UTF-8
2. 服务器端编码格式错误,导致存到mysql也是乱码
这个可以通过debug的模式来断点执行,查看在服务端保存前收到的参数值是否是乱码,如果在服务端收到的就是乱码,那要检查下前端传入的字符是否有转成utf-8

3. mysql配置不正确,导致乱码
这个问题是最常遇到的,经常发现有同学忘记了这块的配置,就是在spring.datasource.url的配置中少了 &useUnicode=true&characterEncoding=utf8 的配置
spring.datasource.url = jdbc:mysql://localhost:3306/blog_system?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8
4. 读取配置文件的变量时,中文显示为乱码
如有一个test.properties的文件,设置了相应的变量值
tom.age = ${random.int[10,20]}
tom.description = tom的年龄可能是这个数据: ${tom.age}
在程序中读取变量description时,会显示中文乱码
@Value("${tom.description}")
private String description;
这时候就需要在配置引用配置文件时,添加encoding="UTF-8"
@PropertySource(value = "classpath:test.properties",encoding = "UTF-8")
以上就是springboot乱码问题排查思路解析的详细内容,更多关于springboot乱码排查的资料请关注脚本之家其它相关文章!
相关文章
使用IDEA创建servlet JavaWeb 应用及使用Tomcat本地部署的实现
本文主要介绍了使用IDEA创建servlet JavaWeb 应用及使用Tomcat本地部署2022-01-01
java数组算法例题代码详解(冒泡排序,选择排序,找最大值、最小值,添加、删除元素等)
这篇文章主要介绍了java数组算法例题代码详解(冒泡排序,选择排序,找最大值、最小值,添加、删除元素等),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-05-05
Java中@DateTimeFormat和@JsonFormat注解介绍
@DateTimeFormat和@JsonFormat都是处理时间格式化问题的,把其他类型转换成自己需要的时间类型,下面这篇文章主要给大家介绍了关于Java中@DateTimeFormat和@JsonFormat注解介绍的相关资料,需要的朋友可以参考下2022-11-11
sentinel 整合spring cloud限流的过程解析
这篇文章主要介绍了sentinel 整合spring cloud限流,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-03-03
MyBatisPlus 一对多、多对一、多对多的完美解决方案
这篇文章主要介绍了MyBatisPlus 一对多、多对一、多对多的完美解决方案,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-11-11


最新评论