2016-04-21 55 views
1

我在一個java項目上工作,其中標籤被外化並翻譯成.properties文件。爲什麼不將所有.properties文件轉換爲UTF-8?

Java中的資源使用ISO-8859-1編碼讀取,因此.properties文件也存儲在ISO-8859-1編碼中。
當前文件被搞亂了,有時使用轉義\u00E4,有時使用實際的字母öäü
我也有俄語翻譯,看起來是這樣的:

code.adr=\u0430\u0434\u0440\u0435\u0441 

這可以使用UTF-8明文存儲。

現在的問題是,爲什麼不使用UTF-8?
爲什麼Java在默認情況下使用ISO-8859-1而不是UTF-8,向後兼容?
是否有任何已知的缺點,將所有.properties文件轉換爲UTF-8?

+1

該規範是在UTF-8成爲普遍接受的默認編碼之前編寫的。既然它是這樣指定的,它必須保持這樣。這就是說,你*可以*加載你選擇的編碼屬性文件,但期望有一些混淆(我隱約記得一些Spring組件實際上使用默認的UTF-8)。 –

回答

0
  1. 如果使用的ResourceBundle,切換到ListResourceBundle的可能是可行:即純Java(陣列)。
  2. 或者,你可能想要生成* .properties從一個XML翻譯記憶xliff或其他。這具有能夠添加評論的優點;創建詞彙表等。