Computer >> Máy Tính >  >> Lập trình >> Java

Những cải tiến trong Quốc tế hóa trong Java 9 là gì?

Quốc tế hóa các cải tiến trong Java 9 bao gồm Unicode 8.0 , UTF-8 các tệp thuộc tính và bật CLDR ngôn ngữ dữ liệu theo mặc định. Java 9 hỗ trợ tối đa Unicode 8,0 tiêu chuẩn với 10.555 ký tự, 29 tập lệnh và 42 khối.

Trong Java 9, các tệp thuộc tính được tải bằng mã hóa UTF-8 . Theo mặc định, việc đọc luồng đầu vào sẽ ném MalformedInputException hoặc UnmappableCharacterException . Trong trường hợp này, PropertyResourceBundle phiên bản được đặt lại về trạng thái trước ngoại lệ, đọc lại luồng đầu vào trong ISO-8859-1 và tiếp tục đọc.

Nếu PropertyResourceBundle. mã hóa đã được đặt thành ISO-8859-1 hoặc UTF-8 , rồi đến PropertyResourceBundle ví dụ đọc một luồng đầu vào trong bảng mã đó và đưa ra một ngoại lệ nếu gặp một chuỗi không hợp lệ. Thuộc tính hệ thống được đọc và đánh giá khi khởi chạy PropertyResourceBundle lớp, thì bất kỳ hành động nào thay đổi hoặc xóa thuộc tính đều không có hiệu lực.

Nếu chúng tôi chỉ định ISO-8859-1 :

  • Các ký tự không được thể hiện trong ISO-8859-1 mã hóa phải được đại diện bằng Unicode trốn thoát .
  • Các giá trị mã hóa khác đã bỏ qua thuộc tính của hệ thống này.

Nếu có vấn đề, chúng tôi có thể xem xét các tùy chọn dưới đây:

  • Chuyển đổi tệp thuộc tính sang mã hóa UTF-8 .
  • Chỉ định thuộc tính hệ thống thời gian chạy.
java.util.PropertyResourceBundle.encoding=ISO-8859-1