我是靠谱客的博主 称心睫毛,最近开发中收集的这篇文章主要介绍Spring boot 配置文件参数中文乱码的解决,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我们知道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 配置文件参数中文乱码的解决所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部