使用 UTF-8 的 Spring Boot 属性文件

Gar*_*son 0 java utf-8 properties-file spring-boot

尽管 Java 属性文件传统上仅支持 ISO-8859-1,但JDK 9 及更高版本支持以 UTF-8 编码的属性文件。虽然只有 JDK 9+ 通过内置默认属性文件读取支持 UTF-8,但它使用的相同技术可以在任何 Java 版本中完成,围绕属性文件添加 UTF-8 支持并回退到 ISO-8859 -1 用于向后兼容(正如 JDK 实现所做的那样)。

我是 Spring Boot 的新手,我正在阅读它带来的所有漂亮的属性配置。Spring Boot 是否支持从以 UTF-8 编码的属性文件加载属性?如果没有,Spring Boot 代码中的何处是属性文件读取合并,以便我可以添加此功能并提交拉取请求?

Oli*_*ver 5

默认情况下 Spring 仅支持 ISO-8859-1 属性。但有几种方法可以解决这个问题:

  • 使用application.yaml属性文件。
  • 使用 @Configuration 类注释@PropertySource(value = "classpath:/custom-name-of-application.properties", encoding="UTF-8")
  • 使用 Java 参数运行您的应用程序以使用 UTF-8 文件:mvn spring-boot:run -Drun.jvmArguments="-Dfile.encoding=UTF-8"