java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > springboot乱码排查

springboot乱码问题排查思路解析

作者:liufenggui

这篇文章主要为大家介绍了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乱码排查的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文