2015-10-20 35 views
0

我有要求閱讀具有羅馬尼亞字符的字符串的屬性文件。無法對羅馬尼亞字符進行編碼

當我嘗試編碼時,我看到一些字符沒有正確編碼。

ResourceBundle bundle = ResourceBundle.getBundle("view.Country"); 
    Enumeration keys = bundle.getKeys(); 
    while (keys.hasMoreElements()) { 
     String key = (String) keys.nextElement(); 
     String value = bundle.getString(key); 
     try { 
      System.out.println(key + ": " + new String(value.getBytes("UTF-8"), "UTF-8")); 
      System.out.println("-----------"); 
      System.out.println(key + ": " + new String(value.getBytes("Windows-1250"), "Windows-1250")); 
     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } 
    } 

輸入:

Country=România 
AdministrativeAreaType=Țara 

輸出:

AdministrativeAreaType: ?ara 
----------- 
AdministrativeAreaType: ?ara 
Country: România 
----------- 
Country: România 

正如你可以在輸出中看到,該國價值被正確編碼。但AdministrativeAreaType值編碼不正確。

請讓我知道如果代碼中有任何錯誤。

+0

其中一個原因。輸入文件不是UTF-8或UNICODE。並在另一個說明中您是否嘗試過使用Locale的ResourceBUndle。像這個例子一樣http://www.avajava.com/tutorials/lessons/how-do-i-use-locales-and-resource-bundles-to-internationalize-my-application.html – Acewin

+0

ResourceBundle文件始終處於ISO-8859-1編碼。您可能以不同的編碼保存了文件。 –

+0

[如何使用ResourceBundle在資源屬性中使用UTF-8]的可能重複(http://stackoverflow.com/questions/4659929/how-to-use-utf-8-in-res- source-properties-with-resourcebundle) –

回答

0

正如其他社區成員所建議的那樣,羅馬尼亞語不是UTF-8或UNICODE支持的語言。

我建議看看Supported Encodings的列表。羅馬尼亞語應覆蓋ISO-8859-2

我不確定,但我猜你會被要求自己做轉換。

相關問題