2016-08-25 18 views
0

我有一個屬性文件(test_ko.properties)文件韓國(KO),它看起來像這樣:如何獲得屬性值中使用Java

day=\uC77C 
nominal=\uAE08\uC561 
month=\uC6D4 

向上面我用的是獲取文件的內容資源包,如下:

bundle = ResourceBundle.getBundle("test", new Locale("ko")); 

String day = bundle.getString("day"); 
String nominal = bundle.getString("nominal"); 
String month = bundle.getString("month"); 

System.out.println("#Day : " + day); 
System.out.println("#Nominal : " + nominal); 
System.out.println("#Month : " + month); 

當我運行它,我得到以下結果:

#Day : ???? 
#Nominal : ???????? 
#Month : ???? 

我怎樣才能得到的結果ŧ Ø看起來像它應該:

#Day : \uC77C 
#Nominal : \uAE08\uC561 
#Month : \uC6D4 
+0

您的命令行不能表示這些Unicode字符。這不一定是一個錯誤的跡象。把它們寫入一個文件,比如說UTF-8,你就可以將它們讀作UTF-8。 –

+0

或者你也可以使用Apache Commons-configurations2 – gonephishing

回答

0

如果你有Apache的公共圖書館,使用StringEscapeUtils.escapeJava

或者

String uescape(String s) { 
    StringBuilder sb = new StringBuilder(s.length() * 6); 
    for (char ch : s.toCharArray()) { 
     if (32 <= ch && ch < 128) { 
      sb.append(ch); 
     } else { 
      sb.append(String.format("\\u%04X", (int)ch); 
     } 
    } 
    return sb.toString(); 
} 

當然,這是一個完整的Unicode字符串的ASCII表示,通過資源包類爲已讀。