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

在调试阿里短信时候,遇到读取配置文件乱码导致标签名无法正常使用,而可能有两个原因导致这个问题,一个是配置文件编码方式不是UTF-8的,另一个是Spring http使用的编码不是UTF-8

1、第一步,将配置文件的编码方式改为UTF-8

xx.propertiesxx.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);
    }
}

结果我在配置属性文件里采用了第二步的第一种方法,完美解决问题!

相关推荐
2501_947575802 小时前
计算机毕业设计之jsp开山车行二手车交易系统
java·开发语言·hadoop·python·信息可视化·django·课程设计
骑士雄师2 小时前
java面试题 4:鉴权
java·开发语言
独孤九剑打醒他3 小时前
双层Master-Worker软硬协同调度架构:从根源解决分布式数据一致性难题
后端·嵌入式硬件·硬件架构·硬件工程
帅次3 小时前
Android 高级工程师面试:Java 基础知识 近1年高频追问 22 题
android·java·面试
蓝胖的四次元口袋3 小时前
Java集合(4)
java·哈希算法
2501_948106914 小时前
计算机毕业设计之基于jsp教科研信息共享系统
java·开发语言·信息可视化·spark·课程设计
TanYYF4 小时前
spring ai入门教程二
java·人工智能·spring
SeeYa-J4 小时前
Spring IOC(Inversion of Control)
java·spring·rpc
宠友信息4 小时前
多端数据互通场景下Spring Boot仿小红书源码结构设计
数据库·spring boot·redis·缓存·架构
不会c+4 小时前
02-SpringBoot配置文件
java·spring boot·后端