Java 9 國際化方面的增強有哪些?


Java 9 中的國際化增強包括Unicode 8.0UTF-8 屬性檔案以及預設啟用CLDR區域設定資料。Java 9 支援Unicode 8.0 標準,包含 10,555 個字元、29 個文字系統和 42 個區塊。

在 Java 9 中,屬性檔案以UTF-8 編碼載入。預設情況下,讀取輸入流會丟擲MalformedInputExceptionUnmappableCharacterException異常。在這種情況下,PropertyResourceBundle例項會重置到異常之前的狀態,以ISO-8859-1重新讀取輸入流,並繼續讀取。

如果PropertyResourceBundle.encoding已設定為ISO-8859-1UTF-8,則PropertyResourceBundle例項將以該編碼讀取輸入流,並在遇到無效序列時丟擲異常。系統屬性在初始化PropertyResourceBundle類時讀取和評估,之後任何更改或刪除該屬性的操作都不會產生影響。

如果我們指定ISO-8859-1

  • 無法在ISO-8859-1編碼中表示的字元必須用Unicode轉義序列表示。
  • 其他編碼值會忽略此係統屬性。

如果出現問題,可以考慮以下選項:

  • 屬性檔案轉換為UTF-8 編碼
  • 指定執行時系統屬性。
java.util.PropertyResourceBundle.encoding=ISO-8859-1

更新於:2020年3月6日

瀏覽量:100

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.