Shift JIS 【シフトJIS】 SJIS
概要
Shift JIS(シフトJIS)とは、コンピュータで日本語を含む文字データを扱うために用いられる文字コード標準の一つ。Windowsなどが標準の日本語文字コードとして採用したことから広く普及した。正確には「Shift_JIS」と間にアンダーバーを挟んで表記する。コンピュータで文字データを扱うには、文字や記号の一つ一つに対応する番号(符号)を与え、文字の列を番号の列に変換する必要がある。文字と番号の対応関係を定めた仕様を「符号化文字集合」、番号を具体的なビット列として表す変換ルールを「文字エンコーディング」という。
Shift JISは「JIS X 0201」や「JIS X 0208」などの標準規格で定められた符号化文字集合を対象とする文字エンコーディング仕様の一つで、JIS X 0201の半角英数字や制御文字、半角カタカナを1バイトで、JIS X 0208の全角文字を2バイトで表すことができる。
主な特徴
JIS漢字コードを対象としたエンコーディング方式には、いわゆる「JISコード」の通称で知られる「ISO-2022-JP」や、UNIX系OS向けに策定された「EUC-JP」(日本語EUC)もある。これらが連続したコード領域で文字を表すのに対し、Shift JISでは文字集合をいくつかに分割し、それぞれ異なる離れた領域へ移動(shift)させている。
これは、2バイト表現の1バイト目(先頭バイト)の値として、既存のいわゆる半角文字のコード領域、すなわち、ASCIIコード由来の英数字・記号文字・制御文字やJIS X 0201で追加された記号・半角カナ文字などの使用している値が出現するのを避けるためである。
ISO-2022-JPなどは1バイト目に8ビット文字コードと共通する値を使用しているため、どの文字コードの文字であるかをシステムに知らせるためにコード切り替えの印(エスケープシーケンス)をその都度挿入しなければならない。
一方、Shift JISは1バイト目に8ビット文字と重ならないようコードを配置しているため、1バイト目を読み込んだ時点ですぐにShift JISの文字であると判定でき、ASCII文字と漢字などが混在する文字列でもエスケープシーケンスを付加しなくてよいという利点がある。
ただし、2バイト目にASCII領域のコードが現れることは避けられないため、文字列データ中の任意の位置のバイトが半角文字なのかShift JIS文字の2バイト目なのかを他の手掛かりを用いずに知ることはできない。
また、2バイト目に16進数「5C」(92番、欧米ではバックスラッシュ、日本では円記号)が現れる文字があり、バックスラッシュや円記号にエスケープ文字などの特別な意味を与えているシステム(特に、日本語コードを考慮しない欧米製のソフトウェアなど)でうまく動作しないことがある。
歴史
Shift JISは1982年に日米のコンピュータ業界数社が共同で考案したとされ、米マイクロソフト(Microsoft)社が自社のパソコン向けオペレーティングシステム(OS)製品の「MS-DOS」や「Windows」に「CP932」(コードページ932)あるいは「MS漢字コード」として実装したことで広く普及した。
メーカー独自仕様だったことから長らく公的な規格とはなっていなかったが、1997年の「JIS X 0208」改訂版の附属書として仕様が掲載された。その後、2000年の「JIS X 0213」で「Shift_JISX0213」の名称で記載され、2004年のJIS X 0213改訂版では「Shift_JIS-2004」に改名されている。