我们正在使用 JSTL 实现 i18n,遇到了一个问题,即 .properties 文件中定义的资源文本以及具有非 ISO 8859 字符(例如 inidic 语言)的资源文本无法通过标记呈现。
在深入研究了标记和 BundleHelper 类的代码后,最终我们发现它内部使用了 ResourceBundle.getBundle 方法,该方法又使用 PropertyResourceBundle 将 .properties 文件作为资源包加载。
它在内部依赖于 java.util.Properties#load(InputStream) 方法,该方法不支持读取非 ISO 8859 字符,唯一的解决方法是以 /u hex hex hex hex 格式表示此类字符,以防万一如果整个 .properties 文件用于印地语!
是否有任何解决方法。我尝试在 .properties 文件中使用 XML 格式,但 PropertyResourceBundle 无法识别它!
环境细节是:Jdk 1.5,Weblogic 9.2