Coba ceritain soal Shift JIS

Shift JIS (sering ditulis SJIS, MS Kanji, atau dalam istilah MIME, Shift_JIS) adalah salah satu pengkodean karakter untuk bahasa Jepang yang menggabungkan set karakter JIS (Standar Industri Jepang) nomor JIS X 0201:1997 (karakter bita tunggal) dan JIS X 0208:1997 (karakter bita ganda). Pengembangnya adalah perusahaan Jepang ASCII Corporation dan Microsoft, dan dijadikan standar JIS X 0208 pada Lampiran 1.

Susunan karakter bita ganda asal JIS X 0208 "digeser" (shifted) untuk memberi tempat bagi karakter katakana lebar setengah asal JIS X 0201. Hal tersebut dilakukan atas pertimbangan kompatibilitas. Sistem yang baru diharapkan bisa membaca berkas dari sistem komputer lama yang memakai set karakter JIS X 0201 atau katakana lebar setengah.

Karakter bita tunggal dari 0xA1 hingga 0xDF setara dengan aksara katakana lebar separuh dalam JIS X 0201. Sementara itu, karakter bita tunggal dari 0x00 hingga 0x7F sama dengan pengkodean ASCII, kecuali 0x5C (garis miring terbalik) yang diubah menjadi simbol untuk mata uang yen, dan 0x7E (tilde) yang diubah menjadi garis atas.

Shift JIS memerlukan media transmisi 8-bit. Shift JIS dapat menampilkan aksara katakana lebar separuh, sehingga semua karakter JIS X 0201 kompatibel dengan Shift JIS. Set aksara yang dimiliki Shift JIS terdiri dari: kanji dan hiragana lebar penuh (16 bit), katakana lebar setengah (8 bit) dan lebar penuh, karakter ASCII (8 bit), huruf Latin lebar penuh (16 bit), huruf Kiril, huruf Yunani, dan simbol-simbol. Huruf latin lebar penuh digunakan sewaktu menulis aksara kanji secara vertikal, dengan maksud penyeragaman lebar huruf latin dengan lebar aksara kanji.

Walaupun demikian, hanya bita pertama Shift JIS yang merupakan bita tinggi ASCII, sedangkan bita kedua bisa berisi ASCII bita tinggi atau rendah. Akibatnya sering terjadi masalah dalam pembuatan program deteksi Shift JIS. Sementara itu, set karakter EUC-JP yang menjadi pesaing Shift JIS tidak memiliki katakana lebar setengah. Dalam EUC-JP, semua bita tinggi ASCII merupakan bagian dari karakter bita ganda, dan semua bita rendah ASCII merupakan bagian dari karakter bita tunggal.