springboot乱码问题排查思路解析

 更新时间:2023年06月16日 10:02:38   作者: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乱码排查的资料请关注脚本之家其它相关文章!

相关文章

  • JDK 14的新特性:文本块Text Blocks的使用

    JDK 14的新特性:文本块Text Blocks的使用

    这篇文章主要介绍了JDK 14的新特性:文本块Text Blocks的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • java实现图片反色处理示例

    java实现图片反色处理示例

    这篇文章主要为大家详细介绍了java实现图片反色处理示例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • java中断线程的正确姿势完整示例

    java中断线程的正确姿势完整示例

    这篇文章主要为大家介绍了java中断线程的正确姿势完整示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • JDK8中Optional类巧用之判空操作

    JDK8中Optional类巧用之判空操作

    善用Optional可以使我们代码中很多繁琐、丑陋的设计变得十分优雅,这篇文章主要给大家介绍了JDK8中Optional类巧用之判空的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • SpringMVC @RequestBody出现400 Bad Request的解决

    SpringMVC @RequestBody出现400 Bad Request的解决

    这篇文章主要介绍了SpringMVC @RequestBody出现400 Bad Request的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • java中hasNextInt判断后无限循环输出else项的解决方法

    java中hasNextInt判断后无限循环输出else项的解决方法

    这篇文章主要介绍了java中hasNextInt判断后无限循环输出else项的解决方法的相关资料,需要的朋友可以参考下
    2016-10-10
  • Java多线程揭秘之synchronized工作原理

    Java多线程揭秘之synchronized工作原理

    synchronized算是多线程中非常常用的加锁方式了,但很多人都不太理解其底层的工作原理。本篇文章博主用尽可能通俗易懂的方式来带大家去看看synchronized究竟是怎么加锁的
    2021-10-10
  • 解决Mybatis返回update后影响的行数问题

    解决Mybatis返回update后影响的行数问题

    这篇文章主要介绍了解决Mybatis返回update后影响的行数问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 基于Java实现获取本地IP地址和主机名

    基于Java实现获取本地IP地址和主机名

    这篇文章主要介绍了基于Java实现获取本地IP地址和主机名,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • JAVA中String介绍及常见面试题小结

    JAVA中String介绍及常见面试题小结

    这篇文章主要介绍了JAVA中String介绍及常见面试题,在java面试中经常会被面试官问到,小编通过实例代码相结合给大家详细介绍,需要的朋友可以参考下
    2020-02-02

最新评论