2010-08-29 89 views
4

我正在开发一个小项目,我想为它使用国际化。问题是,当我尝试在里面使用带西里尔符号的.properties文件时,文本显示为垃圾。当我对字符串进行硬编码时,它显示得很好。在eclipse项目中使用西里尔文的.properties文件

这里是我的代码:

ResourceBundle labels = ResourceBundle.getBundle("Labels"); 
btnQuit = new JButton(labels.getString("quit")); 

而且在我的.properties文件:

退出=Изход

我也得到垃圾。当我尝试

btnQuit = new JButton("Изход); 

它显示正确。据我所知,UTF-8是用于文件的编码。

任何想法?

+0

定义“据我所知,” :-) – 2010-08-29 19:45:54

回答

7

AnyEdit是一个eclipse插件,允许您轻松地将您的属性文件转换为unicode符号。 (避免使用的命令行工具,如用native2ascii)

如果你单独使用Properties类(不包括资源包),自从Java 1.6,你可以选择load与自定义编码的文件,使用Reader(而不是InputStream

我猜你也可以使用new PropertyResourceBundle(reader),而不是ResourceBundle.getBundle(..),其中reader是:

Reader reader = new BufferedReader(new InputStreamReader(
    getClass().getResourceAsStream("messages.properties"), "utf-8"))); 
4

Properties默认是ISO-8859-1编码。您必须使用native2ascii将您的UTF-8属性转换为包含所有非ISO-8859-1字符的Unicode码转义序列的有效ISO-8859-1属性文件。

相关问题