解决SpringBoot项目读取yml文件中值为中文时,在视图页面显示乱码

 更新时间:2023年08月31日 16:47:49   作者:宋峥清  
这篇文章主要介绍了解决SpringBoot项目读取yml文件中值为中文时,在视图页面显示乱码的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

SpringBoot项目读取yml文件中值为中文时,在视图页面显示乱码

在Spring Boot项目中,我们会遇到在yml配置文件中有放中文值的属性,在取这种中文值放到页面上面展示的时候,会出现页面中乱码的情况。

遇到因为取yml中文在页面上显示乱码这种情况,我们重新设置编码工具的编码方式就ok了。

找到IDEA的Settings中的File Encodings,将图中标红的配置都统一设置为UTF-8,最后点击Apply应用和ok。

这时yml的中文字体会变成乱码,重新编辑修改,再启动项目,页面中乱码情况就不会出现了,这是针对yml存有中文取值导致页面乱码的解决方法~

SpringBoot配置文件中的中文读取出来是乱码,或者是问号问题

可能有两个原因导致这个问题,一个是配置文件编码方式不是 UTF-8 的,另一个是 Spring http 使用的编码不是 UTF-8 。

1、第一步

将配置文件的编码方式改为 UTF-8

将 xx.properties 和 xx.yml 文件的编码方式改为 UTF-8 ,中文内容再重新写一遍。

2、第二步

配置 Spring 的编码方式

这里有两种方式。

2.1、方法一

在配置文件中设置( application.yml )

spring:
#--------------------------charset--------------------------
  http:
    encoding:
      charset: UTF-8
      enabled: true
      force: true
#--------------------------Server--------------------------
server:
  tomcat:
    uri-encoding: UTF-8

2.2、方法二

配置过滤器,过滤所有请求,并设置字符编码方式

注意:需要重新配置 json 转换器

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Bean
    public SecurityInterceptor securityInterceptor() {
        return new SecurityInterceptor(security);
    }
    @Bean
    public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
        return new MappingJackson2HttpMessageConverter();
    }
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        // 解决(配置文件属性值)中文乱码问题
        converters.add(responseBodyConverter());
        // 需要重新配置json转换器
        converters.add(mappingJackson2HttpMessageConverter());
    }
    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        configurer.favorPathExtension(false);
    }
}

如果方法一无效的话,就再试试方法二吧…

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java读取项目json文件并转为JSON对象的操作

    Java读取项目json文件并转为JSON对象的操作

    这篇文章主要介绍了Java读取项目json文件并转为JSON对象的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Gradle 创建Task的多种方法

    Gradle 创建Task的多种方法

    本文主要介绍了Gradle 创建Task的多种方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • SpringBoot访问MongoDB数据库的两种方式

    SpringBoot访问MongoDB数据库的两种方式

    MongoDB是一种非关系型数据库,通过文档存储数据,适用于大规模数据存储和高并发访问,这篇文章主要介绍了SpringBoot访问MongoDB数据库的两种方式,感兴趣想要详细了解可以参考下文
    2023-05-05
  • SpringBoot过滤器与拦截器深入分析实现方法

    SpringBoot过滤器与拦截器深入分析实现方法

    大家应该都晓得实现过滤器需要实现 javax.servlet.Filter 接口,而拦截器会在处理指定请求之前和之后进行相关操作,配置拦截器需要两步,本文通过实例代码给大家介绍SpringBoot 过滤器和拦截器的相关知识,感兴趣的朋友一起看看吧
    2022-11-11
  • SpringBoot配置返回数据不存在null的问题小结

    SpringBoot配置返回数据不存在null的问题小结

    文章介绍了在Spring Boot项目中使用Jackson序列化器处理JSON数据时遇到的问题,特别是如何配置Jackson以返回不包含null值的JSON响应,并探讨了Jackson的三种主要JSON处理方法,感兴趣的朋友一起看看吧
    2025-02-02
  • SpringMVC通过注解实现全局异常处理问题小结

    SpringMVC通过注解实现全局异常处理问题小结

    文章介绍SpringMVC全局异常处理机制,通过@ControllerAdvice和@ExceptionHandler注解实现统一异常处理,提升代码可维护性与响应一致性,减少重复try-catch代码,增强系统健壮性,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2025-09-09
  • java 中sendredirect()和forward()方法的区别

    java 中sendredirect()和forward()方法的区别

    这篇文章主要介绍了java 中sendredirect()和forward()方法的区别,需要的朋友可以参考下
    2017-08-08
  • 23种设计模式(18)java备忘录模式

    23种设计模式(18)java备忘录模式

    这篇文章主要为大家详细介绍了23种设计模式之java备忘录模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Spring Boot Admin邮件警报整合过程解析

    Spring Boot Admin邮件警报整合过程解析

    这篇文章主要介绍了Spring Boot Admin邮件警报整合过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Java函数式编程(六):Optional

    Java函数式编程(六):Optional

    这篇文章主要介绍了Java函数式编程(六):Optional,本文是系列文章的第6篇,其它文章请参阅本文底部的相关文章,需要的朋友可以参考下
    2014-09-09

最新评论