「Shift JIS」の版間の差分

削除された内容 追加された内容
編集の要約なし
+MS漢字コードとSJC-26の違い
21行目:
[[1982年]]([[昭和]]57年)、漢字の[[符号点|符号位置]]を複雑に移動(シフト)し、符号空間の隙間に押し込むShift_JISが誕生した。これを実現するためには、漢字の1バイト目として、ISO 2022におけるGR({{十六進|A1}}-{{十六進|FE}})領域に3分の1残していた未使用領域に加え、ISO 2022において不使用のCR({{十六進|80}}-{{十六進|9f}})領域を使用することとした。さらに2バイト目には、ISO 2022とは異なり、英数字・半角カナに使用済みの領域をも含む、GL、CR、GRにあたる各領域のほぼ全てを使う必要があった。ただし、GL({{十六進|21}}-{{十六進|7E}})領域においては、JIS X 0201の記号に当たる部分は極力避けた。
 
[[マイクロソフト]]日本法人元会長の[[古川享]]によると、Shift_JISの制定には[[アスキー (企業)|アスキー]]、マイクロソフト(米)、[[三菱電機]]、[[マイクロソフトウェア・アソシエイツ]]、[[デジタルリサーチ]](米)が関わり、特にアスキーの[[山下良蔵]]が中心となって行われたという<ref>古川享 「[http://furukawablog.spaces.live.com/Blog/cns!1pmWgsL289nm7Shn7cS0jHzA!2225.entry 私のマイコン遍歴、日本のパソコン30年史、その1]」の2005年12月28日のコメント 『[http://furukawablog.spaces.live.com/ 古川享ブログ]』 2005年12月28日{{リンク切れ|date=2012年4月}}</ref>。これに対する異説として、[[京都大学]]助教授の[[安岡孝一]]は、マイクロソフトウェア・アソシエイツと三菱電機のみの共同開発だと主張していたが<ref>安岡孝一 「[http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/publications/ISCIE2001.pdf 日本における最新文字コード事情]」『システム/制御/情報』、Vol. 45, [http://www.iscie.or.jp/j/?%E3%80%8C%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%2F%E5%88%B6%E5%BE%A1%2F%E6%83%85%E5%A0%B1%E3%80%8D%E7%AC%AC45%E5%B7%BB#na671586 No. 9], pp. 528–535, 2001<br />
安岡孝一 「[http://slashdot.jp/~yasuoka/journal/334730 シフトJISの誕生]」 2005年12月22日<br />
安岡孝一 「[http://slashdot.jp/comments.pl?sid=292835&cid=857031 Re:古川享さんがシフトJIS誕生について書いています]」 2005年12月29日<br />
安岡孝一、安岡素子『文字符号の歴史 欧米と日本編』共立出版 2006年2月 ISBN 978-4-320-12102-7</ref>、山下本人の発言<ref>山下良蔵 「[http://furukawablog.spaces.live.com/Blog/cns!1pmWgsL289nm7Shn7cS0jHzA!2225.entry 私のマイコン遍歴、日本のパソコン30年史、その1]」の2006年9月21日のコメント 『[http://furukawablog.spaces.live.com/ 古川享ブログ]』 2006年9月21日</ref>により安岡は自説を撤回する発言をしている<ref>安岡孝一「[http://slashdot.jp/comments.pl?sid=292835&cid=1028873 Re:古川享さんがシフトJIS誕生について書いています]」 2006年{{0}}9月29日</ref>。また古くは''{{en|Life with UNIX}}''の訳書 (ISBN 4-7561-0783-4) の「UNIX人名事典」翻訳版加筆部分 (p.45) で、[[深瀬弘恭]]に「MS漢字コードの作者の一人」という紹介文が書かれていた。
 
== Shift_JISの実装 ==
Shift_JISはマイクロソフトの[[MS-DOS]]に「MS漢字コード」(および後の[[Microsoftコードページ932]])、デジタルリサーチの[[CP/M-86]]に「SJC-26」として実装された。両者はほぼ同じだが、[[全角スペース]]の扱いに違いがある。全角スペースにMS-DOSは{{十六進|8140}}を割り当てているが、CP/M-86は半角スペース2文字分と同等の{{十六進|2020}}を割り当てている。CP/M-86での実装は文字列からスペースを探索する処理が簡単になるという[[プログラミング (コンピュータ)|プログラミング]]上の利点があった。一方、MS-DOSは全角スペースに別のコードを割り当てることで、半角入力モードで[[スペースキー]]が2回押されたのか、全角入力モードでスペースキーが1回だけ押されたのかをプログラムが判別できるようにした。これは当時のアプリケーションソフト([[Microsoft Multiplan|Multiplan]]など)でメニュー選択にスペースキーを使用していたためであった。また、[[プリンター]]では全角スペースと半角スペースの幅の比が2対1でない場合があるため、スペースの区別は[[帳票]]設計に影響があった<ref name=":0">「Unix風の機能を持ち込んだ日本語MS-DOS2.0の機能と内部構造」『日経エレクトロニクス』 1983年12月19日号、pp.165-190。</ref>。
 
== Shift_JISの標準化 ==
36 ⟶ 39行目:
; 利点
:# 全角文字と、JIS X 0201で定義したいわゆる半角カナ文字を同一のコード体系で表現できる。
:# 日本語環境においては、[[MS-DOS]]で日本語用文字コードとして採用されて以来、パソコンにおいて圧倒的な普及度があり、その他の文字符号化方式に比べてデータ交換可能性が高い。
; 欠点
:# 半角カナのための領域を確保した関係上、コードシークエンスが区点番号の「区」の区切りではない箇所で分断している。このため、コード番号を演算で求める際は煩雑な処理が必要である。