Tại sao một số biểu tượng Unicode sẽ không hiển thị trong Java?

Mã hóa và hiển thị các ký tự từ các ngôn ngữ khác nhau được sử dụng để làm việc giữa nhiều hệ thống định dạng khác nhau trong cùng một dự án. Mặc dù việc giới thiệu Unicode về mặt kỹ thuật đã giải quyết vấn đề này, bạn vẫn có thể gặp phải tình huống trong đó một số hoặc tất cả các ký tự Unicode của bạn sẽ không hiển thị đúng trong các chương trình Java. Đây là kết quả của việc không cấu hình chính xác các đối tượng hiển thị.

Hệ thống Unicode

Tiêu chuẩn Unicode hoạt động bằng cách chỉ định một mã duy nhất bao gồm các chữ cái và số để thể hiện mọi ký tự trong mọi ngôn ngữ mà tiêu chuẩn hỗ trợ. Tuy nhiên, do số lượng ngôn ngữ mà tiêu chuẩn Unicode hỗ trợ, không phải mọi hệ thống đều có bộ Unicode cho mọi ngôn ngữ được cài đặt. Nếu một máy tính không hỗ trợ cho một ngôn ngữ nhất định, nó sẽ hiển thị các ký tự Unicode dưới dạng dấu hỏi hoặc là các chữ cái và số thực sự tạo thành một mã.

Dòng lệnh

Nếu bạn đang chạy Java thông qua thiết bị đầu cuối hoặc dòng lệnh của mình mà không có thư viện riêng về các thành phần giao diện người dùng đồ họa, phương thức "system.out.println ()" của bạn có thể không sử dụng Unicode theo mặc định. Điều này sẽ ngăn nó không thể đọc hoặc hiển thị các ký tự Unicode. Bạn có thể làm cho "phương thức println ()" hiển thị chính xác các ký tự Unicode bằng cách sử dụng cú pháp "PrintStream out = new PrintStream (System.out, true, 'UTF-8');" để tạo một thể hiện đối tượng mới sử dụng Unicode. Sau cú pháp này, sử dụng lệnh "out.println ()" để in các ký tự Unicode của bạn (bỏ qua các trích dẫn bên ngoài trong suốt bài viết).

Địa phương

Máy ảo Java xử lý hỗ trợ Unicode thông qua một hệ thống các đối tượng ngôn ngữ chuyên biệt gọi là "loc". Chúng kết hợp hỗ trợ ngôn ngữ Unicode với các cài đặt tiêu chuẩn cho các hệ thống tiền tệ, số và các ký tự khác thay đổi từ vùng này sang vùng khác. Nếu bạn không chỉ định một miền địa phương hoặc nhóm phông chữ khác nhau, JVM sẽ tải một miền địa phương dựa trên ngôn ngữ mà hệ điều hành của máy khách hiện đang sử dụng. Nếu bộ ngôn ngữ mặc định của miền địa phương không hỗ trợ bộ Unicode mà chương trình của bạn đang cố sử dụng, chương trình sẽ không thể hiển thị các ký tự Unicode.

Phông chữ đu

Nếu thành phần GUI GUI không hiển thị đúng các ký tự Unicode, các phông chữ mà các thành phần đang sử dụng theo mặc định có thể không hỗ trợ cho các ký tự hoặc ngôn ngữ cụ thể mà bạn đang cố sử dụng. Bạn có thể giải quyết vấn đề này bằng cách tạo một đối tượng phông chữ mới bằng cú pháp "font custom-font = new font ('font-name');" trong đó "font-custom" và "font-name" là tên của phông chữ mới mà bạn sẽ sử dụng. Đây có thể là những phông chữ như Serif, Arial hoặc Lucida Grande. Trong cú pháp, "phông chữ tùy chỉnh" là tên bạn sẽ đặt cho đối tượng phông chữ. Cú pháp "object-name.setFont (custom-font);" sẽ gán phông chữ mới cho thành phần Swing. Trong mã này, "tên đối tượng" là tên của đối tượng Xoay đang hiển thị văn bản Unicode của bạn.

Bài ViếT Phổ BiếN