Java6中PropertyResourceBundle(Reader reader)的用法示例

时间:2011-02-04 16:42:49

标签: java localization internationalization

我在utf-8编码文件中有多个messages.properties文件(messages_en_US.properties,messages_fr.properties,...)。在这些属性文件中,我有一些亚洲语言。这意味着,字符不能用ISO-8859-1编码表示,必须用Unicode Escapes表示。我不想这样做。根据以下链接的文档,如果我使用带有Reader的构造函数,它没有这个限制。

http://download.oracle.com/javase/6/docs/api/java/util/PropertyResourceBundle.html

但是,如果我使用这个构造函数,我将失去根据Locale确定正确属性文件的功能。

有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:0)

您不应该直接实例化PropertyResourceBundle。请改用ResourceBundle.getBundle()

另请参阅ResourceBundle.Control下的第二个示例,了解如何在仍使用分辨率层次结构时加载备用格式。该示例用于加载XML属性,但应该适合使用UTF-8编码的InputStream。

答案 1 :(得分:0)

看来他们真的希望你仍然使用native2ascii。 : - (

这样,您可以将亚洲字符编码为\ uxxxx序列。 ResourceBundle机制可以以这种格式加载它们。

我们所做的是以UTF-8编辑属性文件,构建脚本在其上运行native2ascii。

当你手动加载属性时,看到Java6最终支持不同的属性编码,如果这个支持向下(向上?)移动到构建在属性上的其他部分(例如资源包),那将会很好。