エス‐ジス【SJIS】
読み方:えすじす
《Shift JIS》⇒シフトJIS
Shift JIS
Shift_JIS
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/12/11 06:50 UTC 版)
Shift_JIS(シフトジス)は、コンピュータ上で日本語を含む文字列を表現するために用いられる文字コードの一つ。シフトJIS(シフトジス)と表記されることもある[1]。
かつてはベンダーによる独自拡張を含む文字コード群を指した曖昧な名称であったが、1997年にJIS X 0208で標準化された。
構造
JIS X 0201を1バイトで、JIS X 0208を2バイトで符号化する可変幅文字符号化方式。2バイト文字は、第1バイトに8116-9F16またはE016-EF16の47通り、第2バイトに4016-7E16または8016-FC16の188通りを用いる。
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
さらに、JIS X 0213に拡張したShift_JIS-2004では、第1バイトの未使用領域であるF016-FC16を利用している。
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
歴史
Shift_JISの誕生
1980年代、パソコン用16ビットCPUの普及もあいまって、漢字やひらがな・カタカナを表示可能なハードウェアを備えた情報機器が続々と発売された。これらの製品では、日本語を表現できる文字符号化方式が模索されており、先行してJIS C 6220(現在のJIS X 0201)の8ビット符号(以下「英数字・半角カナ」)と、JIS C 6226(現在のJIS X 0208、以下「漢字」)がよく利用されていた。この両文字集合の混在にあたっては、ISO 2022によるエスケープシーケンスで文字集合を切り替える設計となっていた。
Shift_JISの設計では、ファイルサイズ節約や処理時間短縮を図るため、これら文字集合をエスケープシーケンスなしで混在可能にすることを企図した。 ISO 2022では、英数字・半角カナ・漢字はそれぞれ、8ビット符号空間の中のGL(2116-7E16)・GR(A116-FE16)のいずれか1領域を使うことで表現する。このうち英数字・漢字だけの混在であれば英数字をGL、漢字をGRに割り当てることもできる[2]が、既にGLに英数字、GRに半角カナを割り当てた実装が普及しており、既存のGL・GR領域に漢字を混在させることは困難だった。
1982年、漢字の符号位置をこれら符号空間の隙間に押し込む形でShift_JISが実装された。これを実現するためには、漢字の1バイト目として、ISO 2022において不使用のCR(8016-9F16)領域に加え、半角カナに割り当てられていたGR領域に約3分の1残されていた未使用領域から捻出することとした。さらに2バイト目には、ISO 2022とは異なり、英数字・半角カナに使用済みの領域をも含む、GL、CR、GRにあたる各領域のほぼ全てを使う必要があった。ただし、GL領域においては、JIS X 0201の記号に当たる部分は極力避けた。
マイクロソフト日本法人元会長の古川享によると、Shift_JISの制定にはアスキー、マイクロソフト(米)、三菱電機、マイクロソフトウェア・アソシエイツ、デジタルリサーチ(米)が関わり、特にアスキーの山下良蔵が中心となって行われたという[3]。これに対する異説として、京都大学助教授の安岡孝一は、マイクロソフトウェア・アソシエイツと三菱電機のみの共同開発だと主張していたが[4]、山下本人の発言[5]により安岡は自説を撤回する発言をしている[6]。また古くはLife with UNIXの訳書 (ISBN 4-7561-0783-4) の「UNIX人名事典」翻訳版加筆部分 (p.45) で、深瀬弘恭に「MS漢字コードの作者の一人」という紹介文が書かれていた。
初期の実装
Shift_JISはマイクロソフトのMS-DOSに「MS漢字コード」(および後のMicrosoftコードページ932)、デジタルリサーチのCP/M-86に「SJC-26」として採用された。両者はほぼ同じだが、全角スペースの扱いに違いがある。全角スペースにMS-DOSは814016を割り当てているが、CP/M-86は半角スペース2文字分と同等の202016を割り当てている。CP/M-86での実装は文字列からスペースを探索する処理が簡単になるというプログラミング上の利点があった。一方、MS-DOSは全角スペースに別のコードを割り当てることで、半角入力モードでスペースキーが2回押されたのか、全角入力モードでスペースキーが1回だけ押されたのかをプログラムが判別できるようにした。これは当時のアプリケーションソフト(Multiplanなど)でメニュー選択にスペースキーを使用していたためであった。また、プリンターでは全角スペースと半角スペースの幅の比が2対1でない場合があるため、スペースの区別は帳票設計に影響があった[7]。
標準化
Shift_JISは ISO 2022の符号化の範囲外にあるベンダー独自の実装として誕生しており、普及後もしばらく標準化されずにいたが、JIS X 0208:1997において附属書1で「シフト符号化表現」という名前で仕様が定義された。また、IANAにおいても「Shift_JIS」の名称が登録されている[8]。
JIS X 0208の拡張規格であるJIS X 0213では、2000年制定時に附属書1で上位互換仕様のShift_JISX0213が定められ、2004年改定時にShift_JIS-2004と名称が変更された。
その後は更新は停止したが、日本語版Windowsが長らく標準をShift_JISに定めていたことで使用され続けた。不都合が多いためUnicodeへの移行が呼びかけられている[9]。
符号化方式
区点番号の割当
JIS X 0208では文字集合が区点番号として94×94の文字表の行と列の番号の組で表現される。これら区点番号をShift_JISでは以下のような対応で符号化している。
Shift_JIS | 第2バイト(16進) | ||||||||
---|---|---|---|---|---|---|---|---|---|
40 | … | 7E | 80 | … | 9F | … | FC | ||
第1バイト (16進) | 81 | 1区1点 | 1区63点 | 1区64点 | 2区1点 | 2区94点 | |||
⋮ | |||||||||
9F | 61区1点 | 61区63点 | 61区64点 | 62区1点 | 62区94点 | ||||
E0 | 63区1点 | 63区63点 | 63区64点 | 64区1点 | 64区94点 | ||||
⋮ | |||||||||
EF | 93区1点 | 93区63点 | 93区64点 | 94区1点 | 94区94点 |
JIS X 0213では94×94の文字表が2つあり、それぞれ第1面・第2面と表現される。第1面(第1・2・3水準)は上記符号化の範囲に収まる。第2面(第4水準)は区番号が1・3・4・5・8・12-15・78-94区と不連続に構成されており、この26区分を収録するためにShift_JIS-2004では以下のように対応している。
Shift_JIS | 第2バイト(16進) | ||||||||
---|---|---|---|---|---|---|---|---|---|
40 | … | 7E | 80 | … | 9F | … | FC | ||
第1バイト (16進) | F0 | 1区1点 | 1区63点 | 1区64点 | 8区1点 | 8区94点 | |||
F1 | 3区1点 | 3区63点 | 3区64点 | 4区1点 | 4区94点 | ||||
F2 | 5区1点 | 5区63点 | 5区64点 | 12区1点 | 12区94点 | ||||
F3 | 13区1点 | 13区63点 | 13区64点 | 14区1点 | 14区94点 | ||||
F4 | 15区1点 | 15区63点 | 15区64点 | 78区1点 | 78区94点 | ||||
F5 | 79区1点 | 79区63点 | 79区64点 | 80区1点 | 80区94点 | ||||
⋮ | |||||||||
FC | 93区1点 | 93区63点 | 93区64点 | 94区1点 | 94区94点 |
区点番号からの変換
面区点番号 カテゴリ
Shift_JIS
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/06 03:14 UTC 版)
上位4ビット0123456789ABCDEF下位4ビット0 ー タ ミ 1 。 ア チ ム 2 「 イ ツ メ 3 」 ウ テ モ 4 、 エ ト ヤ 5 ・ オ ナ ユ 6 ヲ カ ニ ヨ 7 ァ キ ヌ ラ 8 ィ ク ネ リ 9 ゥ ケ ノ ル A ェ コ ハ レ B ォ サ ヒ ロ C ャ シ フ ワ D ュ ス ヘ ン E ョ セ ホ ゙ F ッ ソ マ ゚ 緑色で塗りつぶした範囲 (0xA1–0xDF) が半角カナの領域、黄色で塗りつぶした範囲 (0x00–0x7F) は7ビットで表現できる領域、ピンクで塗りつぶした範囲 (0x81–0x9F, 0xE0–0xFC) はShift_JISの1バイト目として使用される領域である。"・「」、。ー"の6記号の半角版も半角カナの領域となっている。(0xA1–0xA5, 0xB0)
※この「Shift_JIS」の解説は、「半角カナ」の解説の一部です。
「Shift_JIS」を含む「半角カナ」の記事については、「半角カナ」の概要を参照ください。
「Shift JIS」の例文・使い方・用例・文例
- Shift-JISのページへのリンク