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
MalformedInputExceptionhoặcUnmappableCharacterException→ 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 set | Hành vi |
|---|---|
| ISO-8859-1 | Ký tự không represent được → phải dùng Unicode escapes (\uXXXX). |
| UTF-8 | Hỗ trợ đầy đủ Unicode, khuyến khích. |
| Khác | Bỏ 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ăng | Java 8 | Java 9 |
|---|---|---|
| Unicode version | 6.2 / 7.0 | 8.0 |
| Default locale data | JRE (COMPAT) | CLDR |
| Properties file encoding | ISO-8859-1 | UTF-8 (fallback ISO-8859-1) |
| Locale provider order | Fixed: JRE > HOST > SPI | Configurable: 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.