Kiểm tra encode (mã hóa) mặc định trong Java | Laptrinhcanban.com

Kiểm tra encode (mã hóa) mặc định trong Java

Hướng dẫn cách kiểm tra encode mặc định trong Java. Bạn sẽ học được cách kiểm tra encode mặc định đang được sử dụng tại môi trường thực thi Java sau bài học này.

Encode mặc định trong Java là gì

Encode mặc định trong Java hay còn gọi là mã hóa mặc định là tên loại mã hóa được tự động cài đặt trong thuộc tính file.encoding cho từng môi trường thực thi Java mà bạn đang sử dụng.

Ví dụ, nếu bạn đang sử dụng Java trong môi trường Windows, encode (mã hóa) mặc định ở đây sẽ là MS932 chẳng hạn.

Khi biên dịch một chương trình Java, nếu chúng ta không chỉ định encode sử dụng khi biên dịch, thì encode mặc định đặt trong thuộc tính file.encoding sẽ được lấy ra và sử dụng.

Ví dụ với encode sử dụng trong file chương trình Java là Unicode, và encode mặc định trong môi trường chạy Java, giả dụ là Windows là MS932, thì khi biên dịch chương trình, nếu chúng ta không chỉ định encode sử dụng, thì encode mặc định MS932 sẽ được dùng để mã hóa từ Unicode thành MS932.

encode mặc định trong Java là gì

Kiểm tra encode (mã hóa) mặc định trong Java

Encode (mã hóa) mặc định sẽ khác nhau tùy thuộc vào môi trường phát triển Java mà chúng ta sử dụng. Chúng ta có thể kiểm tra encode mặc định này, bằng cách xuất ra giá trị của nó được ghi bên trong thuộc tính file.encoding.

Cú pháp kiểm tra encode mặc định trong Java đơn giản như sau:

System.out.println(System.getProperty("file.encoding"));

Ví dụ cụ thể, chúng ta có thể tạo ra chương trình kiểm tra encode mặc định trong Java như sau:

class Sample{
public static void main(String[] args){
System.out.println(System.getProperty("file.encoding"));
}
}

Sau khi biên dịch và chạy chương trình này, encode mặc định sử dụng trong môi trường chạy Java sẽ được in ra như sau:

Kiểm tra encode mặc định trong Java

Do Kiyoshi chạy chương trình trên Windows 10 với ngôn ngữ tiếng Nhật, nên kết quả sẽ trả về ký tự mặc định sử dụng là MS932. MS932 còn được gọi là windows-31j, là một phần mở rộng của Shift_JIS - encode sử dụng trong các hệ điều hành dùng tiếng Nhật.

Tầm quan trọng của encode mặc định trong Java

Đối với môi trường phát triển Java của Kiyoshi, thì encode mặc định sử dụng sẽ là MS932 - loại mã hỗ trợ tiếng Nhật khi mã hóa chương trình.

Điều đó có nghĩa là nếu trong file lưu chương trình Java có chứa ký tự tiếng Nhật thì cũng sẽ không xảy ra lỗi khi chạy trên máy của Kiyoshi, vì bản thân các ký tự tiếng Nhật cũng sẽ được dịch thành công, dựa theo encode mặc định MS932.

Ví dụ, với chương trình chứa ký tự tiếng Nhật sau đây, thì việc biên dịch và chạy chương trình sẽ không có vấn đề gì.

class Sample{
  public static void main(String[] args){
    System.out.println("こんにちは");
  }
}

encode mặc định trong Java

Ngược lại, do encode mặc định trong máy Kiyoshi dành cho tiếng Nhật và không hỗ trợ tiếng Việt, nên mặc dù việc biên dịch và chạy chương trình thành công, nhưng các chữ tiếng Việt được in ra sẽ bị cắt xén như sau:

class Sample{
  public static void main(String[] args){
    System.out.println("Xin chào Việt Nam");
  }
}

encode mặc định trong Java

Mọi chuyện sẽ ngược lại nếu các bạn chạy hai chương trình này tại máy của bạn, bởi vì khác với Kiyoshi thì máy các bạn có encode mặc định trong Java có thể là UTF-8 hỗ trợ tiếng Việt, nhưng lại không hỗ trợ các chương trình chứa ký tự tiếng Nhật.

Bởi vậy, việc nắm rõ encode mặc định đang sử dụng trong môi trường thực thi Java là vô cùng quan trọng trước khi chúng ta tiến hành biên dịch và chạy một chương trình viết bằng Java.

Vậy, nếu như encode sử dụng trong file chứa mã nguồn chương trình Java và encode mặc định trong môi trường chạy chương trình Java là khác nhau thì chúng ta cần phải làm thế nào?

Hãy cùng trả lời câu hỏi này trong bài viết tiếp theo sau đây nhé.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách kiểm tra encode mặc định trong Java trong Java rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về Java trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.