概述
application.properties 和 application.yml 中文乱码的解决方法
- application.properties 配置文件
- application.yml 配置文件
在 spring 项目中,配置文件不光可以添加数据库连接等项目必须的属性,还可以根据项目的实际情况,增加 自定义属性 。
比如,在项目中,需要设置文件存储位置,可以增加 配置 file.path: /root/filePath ,这样的话,如果要修改位置,只需要修改配置文件即可,不需要修改源码。
然而,有些情况下,配置文件的属性包含汉字,后台取值很容易出现乱码。
搜索的答案几乎都是 修改配置文件的编码,这样只能治标不能治本 ,因为项目团队其他成员都需要修改一次;经过各种试错总结,想起之前在 java swing 中也存在乱码,用老办法尝试之后,完美解决。
其实原理也很简单,几乎 java 中所有汉字乱码问题都可以用 unicode 编码 来解决,一劳永逸。
unicode 码简介:
统一码(Unicode),也叫万国码、单一码,是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
application.properties 配置文件
配置文件中,将状态码对应的汉字转为 unicode 码,后台获取数据会正常显示汉字;为了方便阅读,可以在下方用注释的方式显示 unicode 码对应汉字。
注意斜杠(),作用是换行,数据存储格式对应 java 中的 HashMap(后边有java取值方法)。
# 状态码
status:
{"101":"u5f85u5ba1u6838","102":"u901au8fc7",
"210":"u9000u56de","220":"u7ed3u675f"}
#status:
# {"101":"待审核","102":"通过",
# "210":"退回","220":"结束"}
后台获取数据注解,本示例中通过 HashMap 的方式获取数据:
@Value("#{${status}}")
private Map<String, String> status;
application.yml 配置文件
相对于 .properties 文件,yml 文件要友好的多,正常使用的话,应该是不存在汉字乱码问题(目前笔者还未遇到);
# 公司信息
company:
name: u6709u9650u516cu53f8
# 公司信息
#company:
# name: 有限公司
但是,如果 通过 nacos 来加载 yml 配置,汉字会出现乱码,甚至导致 nacos 不能启动 。
笔者搜索很久,没有找到完美解决办法,目前还是使用 unicode 的方式解决。
这里需要注意,如果是 nacos 中加载配置文件,只要有汉字就会出错,因此,注释信息也尽量移除。
# company information
company:
name: u6709u9650u516cu53f8
PS:以下都是试错过程博客。
参考博客:
application.properties 中文乱码问题解决
如何处理从application.properties配置文件获取的汉字乱码问题
SPRING BOOT APPLICATION.YML文件中文注释乱码
最后
以上就是快乐凉面为你收集整理的application.properties 和 application.yml 中文乱码的解决方法的全部内容,希望文章能够帮你解决application.properties 和 application.yml 中文乱码的解决方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复