Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Các cải tiến Internationalization trong Java 9

Internationalization (I18n) Java 9: Unicode 8.0, UTF-8 properties files, bật mặc định CLDR locale data. Hỗ trợ Unicode 8.0: 10,555 ký tự, 29 scripts, 42 blocks.

Properties files encoding

  • Mặc định load với UTF-8.
  • Gặp lỗi MalformedInputException hoặc UnmappableCharacterException → reset, đọc lại với ISO-8859-1.
  • Ép buộc encoding qua system property:
java.util.PropertyResourceBundle.encoding=ISO-8859-1
# hoặc
java.util.PropertyResourceBundle.encoding=UTF-8

Quy tắc encoding

Encoding setHành vi
ISO-8859-1Ký tự không represent được → phải dùng Unicode escapes (\uXXXX).
UTF-8Hỗ trợ đầy đủ Unicode, khuyến khích.
KhácBỏ qua, dùng mặc định.

Giải quyết vấn đề encoding

  • Chuyển file properties sang UTF-8 (khuyến nghị).
  • Hoặc set system property tại runtime: -Djava.util.PropertyResourceBundle.encoding=ISO-8859-1.

Tóm tắt cải tiến I18n Java 9

Tính năngJava 8Java 9
Unicode version6.2 / 7.08.0
Default locale dataJRE (COMPAT)CLDR
Properties file encodingISO-8859-1UTF-8 (fallback ISO-8859-1)
Locale provider orderFixed: JRE > HOST > SPIConfigurable: java.locale.providers

Cải tiến I18n Java 9 làm ứng dụng quốc tế hóa chính xác hơn, chuẩn Unicode hiện đại, linh hoạt cấu hình locale data source.