Java 9新特性:支持UTF-8编码的properties文件-asp文件

Java 9新特性:支持UTF-8编码的properties文件-asp文件

Java中使用properties文件来加载属性资源,通常作为配置项和国际化资源文件。之前该类型的文件只支持ISO-8859-1编码,非ASCII字符要经过转码才能使用,对中文等非拉丁字母语言使用来说很不方便。

从Java 9开始,properties文件可以使用UTF-8编码,java.util.PropertyResourceBundle类支持读取UTF-8编码的properties文件。这意味着可以在该类文件中直接使用Unicode字符而不必进行转码,与此对应之前JDK提供的转码工具native2ascii也被移除了。

Java 9之前:

lang=\\u4E2D\\u6587

Java 9:

lang=中文

已有文件兼容

已有的properties文件不受影响,UTF-8兼容ASCII字符,如果有非法UTF-8字节序列被检测到,Java运行时会重新以ISO-8859-1编码读取该文件。

如果已有的properties文件在Java 9下遇到问题,可以通过以下方式解决:

  • 将文件转换为UTF-8编码。
  • 设置运行时系统属性java.util.PropertyResourceBundle.encoding=ISO-8859-1

推荐阅读