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乱码排查的资料请关注脚本之家其它相关文章!

相关文章

  • Java根据code获取枚举优化方式

    Java根据code获取枚举优化方式

    文章介绍了如何优化枚举类根据code获取枚举类型的过程,通过创建基接口BaseEnum和枚举工具类MyEnumUtil,实现了通用的获取方法,同时,还讨论了根据description获取枚举的优化方法,并建议使用第二种方法
    2026-03-03
  • Java 日期时间工具包–java.time的使用

    Java 日期时间工具包–java.time的使用

    这篇文章主要介绍了Java 日期时间工具包–java.time的使用,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-04-04
  • 详解Java匿名内部类

    详解Java匿名内部类

    这篇文章介绍了Java匿名内部类的实现,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • Spring MVC之@RequestMapping注解详解

    Spring MVC之@RequestMapping注解详解

    本篇文章主要介绍了Spring MVC之@RequestMapping 详解,RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。有兴趣的可以了解一下。
    2017-01-01
  • java实现后台图片跨域上传功能

    java实现后台图片跨域上传功能

    这篇文章主要给大家介绍了关于java实现后台图片跨域上传功能的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • public static void main(String[] args)使用解读

    public static void main(String[] args)使用解读

    这篇文章主要介绍了public static void main(String[] args)的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Java 详解如何获取网络接口信息

    Java 详解如何获取网络接口信息

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实践中才能获得能力的提升,本篇文章手把手带你用Java获取网络接口的信息,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • 基于SpringBoot实现多线程多主机TCP通信

    基于SpringBoot实现多线程多主机TCP通信

    这篇文章主要为大家详细介绍了如何基于SpringBoot实现多线程多主机TCP通信,包括发送数据和接收应答并解析,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-09-09
  • 深入学习Java中的SPI机制

    深入学习Java中的SPI机制

    这篇文章主要介绍了深入学习Java中的SPI机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 使用java 实现mqtt两种常用方式

    使用java 实现mqtt两种常用方式

    在开发MQTT时有两种方式一种是使用Paho Java 原生库来完成,一种是使用spring boot 来完成,这篇文章主要介绍了使用java 实现mqtt两种方式,需要的朋友可以参考下
    2022-11-11

最新评论