我是靠谱客的博主 快乐凉面,最近开发中收集的这篇文章主要介绍application.properties 和 application.yml 中文乱码的解决方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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 中文乱码的解决方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部