Shift_JIS
Bảng mã ký tự tiếng Nhật được sử dụng rộng rãi trong các hệ thống cũ. Đang dần được thay thế bởi UTF-8.
Shift_JIS là bảng mã ký tự để biểu diễn văn bản tiếng Nhật. Được Microsoft và ASCII Corporation cùng phát triển vào năm 1982, đây là bảng mã tiêu chuẩn cho MS-DOS và Windows. Đây là bảng mã có độ dài thay đổi kết hợp JIS X 0201 (chữ-số nửa độ rộng và katakana nửa độ rộng) với JIS X 0208 (kanji và ký tự toàn độ rộng), và là một trong những bảng mã có ảnh hưởng nhất trong lịch sử CNTT Nhật Bản.
Trong Shift_JIS, ký tự chữ-số nửa độ rộng dùng 1 byte, trong khi ký tự tiếng Nhật (hiragana, katakana, kanji) dùng 2 byte. Vì UTF-8 dùng 3 byte cho ký tự tiếng Nhật, Shift_JIS hiệu quả hơn về byte cho văn bản chỉ có tiếng Nhật. Tuy nhiên, Shift_JIS chỉ hỗ trợ khoảng 7.000 ký tự (JIS cấp 1 và 2), ít hơn nhiều so với hơn 140.000 ký tự của Unicode. Emoji và một số kanji (JIS cấp 3 và 4) không thể biểu diễn được. Sách lịch sử bảng mã ký tự đề cập đến nguồn gốc của Shift_JIS.
Shift_JIS có một vấn đề kỹ thuật nổi tiếng gọi là "vấn đề 5C." Một số ký tự tiếng Nhật có 0x5C (dấu gạch chéo ngược) làm byte thứ hai (ví dụ: 表, 能, ソ), xung đột với ký tự thoát trong ngôn ngữ C và có thể gây lỗi chương trình. Vấn đề này, còn được gọi là vấn đề "dame-moji" (ký tự có vấn đề), đòi hỏi sự chú ý liên tục khi lập trình với Shift_JIS.
Ngày nay, việc chuyển sang UTF-8 đang tiến triển trên toàn cầu, với hơn 98% web sử dụng UTF-8. Tuy nhiên, Shift_JIS vẫn cần thiết trong một số bối cảnh kinh doanh Nhật Bản: Excel mặc định dùng Shift_JIS khi mở tệp CSV, các hệ thống cũ của ngân hàng và chính phủ sử dụng Shift_JIS, và một số tiêu chuẩn EDI (Trao đổi dữ liệu điện tử) chỉ định Shift_JIS.
Lỗi ký tự có thể xảy ra khi chuyển đổi giữa Shift_JIS và UTF-8. Việc chuyển đổi dấu sóng (〜, U+301C) so với dấu ngã toàn độ rộng (~, U+FF5E) và chuyển đổi dấu trừ toàn độ rộng đặc biệt gây vấn đề. Windows CP932 (Windows-31J) là phần mở rộng của Shift_JIS bao gồm ký tự đặc biệt NEC và ký tự mở rộng IBM, cần chú ý đến khả năng tương thích với Shift_JIS thuần túy.
Từ góc độ đếm ký tự, cùng một văn bản có số byte khác nhau trong Shift_JIS và UTF-8. Một ký tự tiếng Nhật là 2 byte trong Shift_JIS và 3 byte trong UTF-8. Kích thước cột cơ sở dữ liệu và ước tính kích thước tệp phải tính đến bảng mã được sử dụng. Công cụ đếm ký tự hiển thị cả số ký tự và số byte, trực quan hóa sự khác biệt byte giữa các bảng mã, cung cấp thông tin hữu ích trong thực tế. Sách di chuyển hệ thống cũ cũng đề cập đến chuyển đổi bảng mã ký tự như một chủ đề quan trọng.