Java 9 国际化方面的增强有哪些?


Java 9 中的国际化增强包括Unicode 8.0UTF-8 属性文件以及默认启用CLDR区域设置数据。Java 9 支持Unicode 8.0 标准,包含 10,555 个字符、29 个文字系统和 42 个区块。

在 Java 9 中,属性文件以UTF-8 编码加载。默认情况下,读取输入流会抛出MalformedInputExceptionUnmappableCharacterException异常。在这种情况下,PropertyResourceBundle实例会重置到异常之前的状态,以ISO-8859-1重新读取输入流,并继续读取。

如果PropertyResourceBundle.encoding已设置为ISO-8859-1UTF-8,则PropertyResourceBundle实例将以该编码读取输入流,并在遇到无效序列时抛出异常。系统属性在初始化PropertyResourceBundle类时读取和评估,之后任何更改或删除该属性的操作都不会产生影响。

如果我们指定ISO-8859-1

  • 无法在ISO-8859-1编码中表示的字符必须用Unicode转义序列表示。
  • 其他编码值会忽略此系统属性。

如果出现问题,可以考虑以下选项:

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

更新于:2020年3月6日

浏览量:100

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.