@Value读取properties中文乱码解决方案
2023-04-18 15:36:57 时间
当我们在项目中需要读取配置文件的变量时,往往会遇到读取中文乱码的问题:
英文字符则不会出现该问题。
出现该问题的原因是:
SpringBoot在加载配置文件时,使用的默认编码是:ISO_8859_1。
详细原因请参考:
https://eericzeng.github.io/2019/06/29/SpringBoot%E4%BD%BF%E7%94%A8@Value%E8%AF%BB%E5%8F%96.properties%E4%B8%AD%E6%96%87%E4%B9%B1%E7%A0%81%E5%8F%8A%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95/
那么我们修改IDEA的编码格式为UTF-8不就可以了吗?
这种方式似乎解决了该问题,但是又没完全解决,依然会出现乱码的问题。
那么首先我们需要遵循的原则是:在配置文件中尽量避免中文配置,
当我们不得不配置中文数据时,可以使用如下解决方案:
读取properties中的中文配置,可以使用@PropertySource
注解。
下面是demo:
首先新建配置文件:xxx.properties,名称不能和application.properties相同。
新建一个了类,用来接收配置:
@Data
@Component
@PropertySource(value = "classpath:chinese.properties", encoding="UTF-8")
//指定读取配置的前缀
@ConfigurationProperties(prefix = "com.example.demo")
public class Properties {
private String name;
private Integer age;
private String address;
}
使用:
@Autowired
引用
这样就可以正确加载中文配置。
@ConfigurationProperties还可以加载yml配置,同样不会出现乱码问题。
相关文章
- 学完这篇 Nest.js 实战,还没入门的来锤我!(长文预警)
- backface-visibility在翻转特效的妙用
- Metal 框架之渲染管线渲染图元
- [编程基础]日常工作中Git常用操作 & 相关知识
- Dart 编码规范:集合使用最佳实践
- TensorFlow2实现实时任意风格迁移
- Widows和Linux下如何安装MySQL | MySQL(前传)
- clion mac 下刷题最佳配置
- 用代码在浏览器挂上一个专属自己的小猫咪
- Go语言核心36讲(Go语言实战与应用九)--学习笔记
- linux 之拖拽上传文件
- Diff算法核心原理
- Activity启动流程
- 启动优化
- Android APP启动流程
- datax_web环境搭建
- EL-ADMIN
- Flink TaskManager 内存模型详解
- Flink源码
- flutter 模块化