当前位置: 首页 > article >正文

修改IDEA配置导致Spring Boot项目读取application.properties中文乱码问题

之前很多配置都是放在nacos里面,然后这次同事有个配置写在application.properties中,这个配置含有中文,启动之后发现拿到的中文值会乱码,然后就帮忙看了一下问题。

排查问题

经过不停的百度、排查发现,spring读取application.properties配置文件时候,是ISO-8859-1的编码, OriginTrackedPropertiesLoader#load(boolean)方法会new CharacterReader(this.resource)类,OriginTrackedPropertiesLoader.CharacterReader#CharacterReader类构造器中会把配置文件读成流,编码格式是ISO-8859-1,而项目的配置文件编码格式是UTF-8(后面会讲),所以就乱码了。
在这里插入图片描述
在这里插入图片描述
配置文件中的key和value
在这里插入图片描述
乱码的key和value
在这里插入图片描述

解决

知道问题所在了,就着手解决了,这边没有采用重写一个类的方式解决,而且修改IDEA的配置。因为之前IDEA中配置文件都是ISO-8859-1的编码格式(默认就是ISO-8859-1),后面改成了UTF-8,但是当时没有在配置文件中使用中文,且为了项目都使用UTF-8,所以把配置文件也改成了UTF-8,这就是为什么一直没有遇到这种问题的原因,因为以前的项目出现中文的时候,没有改IDEA的默认配置(现在想想,IDEA多出一个这么个选项,也是有他的道理的)。
这是乱码时的IDEA配置,下面的那个properties文件默认编码格式UTF-8,所以读取出来的时候才会乱码。
在这里插入图片描述
把配置改成ISO-8859-1(改成这个之后,原来的配置文件中文会乱码,可以先复制出来,改完再拷贝进去)
在这里插入图片描述


http://www.kler.cn/a/412387.html

相关文章:

  • FreeRTOS 内存管理
  • Next.js 独立开发教程(八):静态渲染与动态渲染的应用
  • 计算机网络:应用层知识点概述及习题
  • 李宏毅机器学习课程知识点摘要(14-18集)
  • 【Android】静态广播接收不到问题分析思路
  • 51单片机从入门到精通:理论与实践指南入门篇(二)
  • SpringBoot(三十六)SpringBoot使用sentinel自定义注解实现限流
  • CodeIgniter URL结构
  • IntersectionObserver 交叉观察器
  • shell编程4,shell脚本于用户交互+关系运算符
  • C#基础题总结
  • 【大数据学习 | Spark-SQL】SparkSQL读写数据
  • STM32 使用ARM Compiler V6 编译裸机 LWIP协议栈报错的解决方法
  • 【pyspark学习从入门到精通21】机器学习库_4
  • 解决`-bash: ./configure:/bin/sh^M:解释器错误: 没有那个文件或目录`的问题
  • 项目学习:仿b站的视频网站项目03-注册功能
  • 沃丰科技出海客服系统:打造全球化客户服务新标杆
  • 日志打印规范
  • AVL、B树和B+树
  • 学习笔记039——SpringBoot整合Redis
  • width设置100vh但出现横向滚动条的问题
  • 速度革命:esbuild如何改变前端构建游戏 (1)
  • 多模态大模型打造沉浸式社交体验,Soul App创始人张璐团队海外首秀GITEX GLOBAL
  • 使用OpenCV实现图像拼接
  • 【C++第三方库】Muduo库结合ProtoBuf库搭建服务端和客户端的过程和源码
  • 【JavaEE初阶 — 网络编程】Socket 套接字 & UDP数据报套接字编程