EUC-JP
Mã hóa ký tự tiếng Nhật được sử dụng rộng rãi trên hệ thống UNIX. Thuộc họ Extended Unix Code.
EUC-JP (Extended Unix Code for Japanese) là mã hóa ký tự được thiết kế để xử lý văn bản tiếng Nhật trên hệ điều hành UNIX. Được phát triển vào cuối những năm 1980 và được áp dụng rộng rãi trong suốt những năm 1990, nó trở thành mã hóa tiêu chuẩn cho cộng đồng UNIX Nhật Bản. Nó mã hóa bộ kanji JIS X 0208 sử dụng 2 byte mỗi ký tự và kết hợp với vùng byte đơn tương thích ASCII, cho phép xử lý hiệu quả văn bản hỗn hợp tiếng Anh và tiếng Nhật.
Cấu trúc mã hóa của EUC-JP được đặc trưng bởi khả năng phân biệt loại ký tự dựa trên phạm vi giá trị byte. Ký tự ASCII chiếm 0x00-0x7F dưới dạng byte đơn, trong khi kanji JIS X 0208, hiragana và katakana sử dụng 2 byte trong phạm vi 0xA1-0xFE. Ngoài ra, katakana nửa chiều rộng JIS X 0201 sử dụng 2 byte với 0x8E là byte dẫn đầu, và kanji bổ sung JIS X 0212 sử dụng 3 byte với 0x8F là byte dẫn đầu. Sự phân tách giá trị byte rõ ràng này tránh được "vấn đề 5C" trong Shift_JIS, nơi ký tự gạch chéo ngược va chạm với byte thứ hai của một số kanji. Hướng dẫn môi trường tiếng Nhật Linux bao gồm chi tiết kỹ thuật của EUC-JP.
Trên các hệ thống dựa trên UNIX như Linux và FreeBSD, EUC-JP đóng vai trò locale mặc định cho đến đầu những năm 2000. Nó đặc biệt được đánh giá cao trong môi trường máy chủ vì tương thích với các hàm xử lý chuỗi ngôn ngữ C và hoạt động ổn định của các công cụ xử lý văn bản như grep và sed. Nhiều hệ thống hạ tầng trong các trường đại học Nhật Bản, viện nghiên cứu và máy chủ mail ISP được xây dựng với EUC-JP là mã hóa giả định.
So với Shift_JIS, EUC-JP cung cấp khả năng lập trình vượt trội. Trong khi Shift_JIS là tiêu chuẩn trên MS-DOS và Windows, byte thứ hai của nó có thể trùng lặp với giá trị ASCII, gây ra va chạm thường xuyên với dấu phân cách đường dẫn và ký tự thoát. EUC-JP tránh được vấn đề này vì byte thứ hai luôn là 0xA1 trở lên. Tuy nhiên, EUC-JP có hỗ trợ hạn chế trên Windows và gặp ràng buộc trong hiển thị trình duyệt web.
Ngày nay, việc chuyển đổi sang UTF-8 gần như hoàn tất, và không có lý do để áp dụng EUC-JP cho hệ thống hoặc ứng dụng mới. Tuy nhiên, EUC-JP vẫn được gặp trong thực tế khi bảo trì hệ thống cũ, phân tích tệp log cũ, hoặc duyệt lưu trữ danh sách gửi thư. Các công cụ như lệnh iconv và module codecs của Python cho phép chuyển đổi giữa EUC-JP và UTF-8. Hướng dẫn chuyển đổi mã hóa ký tự giải thích cách chuyển đổi giữa các mã hóa.
Từ góc độ đếm ký tự, hiểu mối quan hệ giữa số byte và số ký tự trong văn bản mã hóa EUC-JP là thiết yếu. Ký tự ASCII là 1 byte mỗi ký tự, trong khi ký tự tiếng Nhật là 2 byte mỗi ký tự. Vì UTF-8 sử dụng 3 byte cho ký tự tiếng Nhật so với 2 byte của EUC-JP, văn bản nhiều tiếng Nhật tạo ra kích thước tệp nhỏ hơn trong EUC-JP. Đếm ký tự chính xác dữ liệu cũ yêu cầu xử lý nhận biết mã hóa tính đến các đặc điểm này.