2010-08-29 88 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屬性文件。

相關問題