概述
我们知道Spring boot可以写常规的properties配置文件,也可以写yml配置文件。
Spring boot本身对一些东西进行了封装,对配置文件的读取非常简单。
但带来的不便就是对中文字符的处理比较尴尬,对于使用properties配置文件来说,没法设置自身的encoding,设置的也不会是properties有效的。如下:
server.tomcat.uri-encoding=UTF-8
spring.banner.charset=UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
spring.messages.encoding=UTF-8
中文内容在读取的时候就会出现乱码,包括把properties文件重新用utf-8编码保存,仍然没有用。
查看Java官方文档,关于Properties类,关键内容如下:
The load(Reader)
/
store(Writer, String)
methods load and store properties from and to a character based stream in a simple line-oriented format specified below. The load(InputStream)
/
store(OutputStream, String)
methods work the same way as the load(Reader)/store(Writer, String) pair, except the input/output stream is encoded in ISO 8859-1 character encoding. Characters that cannot be directly represented in this encoding can be written using Unicode escapes as defined in section 3.3 of The Java™ Language Specification; only a single 'u' character is allowed in an escape sequence.
所以对于在Spring boot项目中properties文件乱码的,按官方的做法是:“Characters that cannot be directly represented in this encoding can be written using Unicode escapes”。即使用Unicode 的escape代码来表示中文,以避免乱码。
如果不想这么麻烦,可以使用新的yml配置文件。yml使用YamlPropertySourceLoader加载器进行加载,该加载器默认就是使用UTF-8编码的。中文不会出任何问题。
综上,避免Spring Boot配置文件中文乱码有两种方式:
1. 使用Unicode 的escape代码来表示中文;
2. 使用yaml格式来存储内容。
最后
以上就是称心睫毛为你收集整理的Spring boot 配置文件参数中文乱码的解决的全部内容,希望文章能够帮你解决Spring boot 配置文件参数中文乱码的解决所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复