未来のいつか/hyoshiokの日記

hyoshiokの日々思うことをあれやこれや

シフトJISの誕生

パソコンで最もよく利用されているエンコーディングの一つがシフトJISなのだが、その誕生については、なかなかまとまった資料がない。当時の関係者の証言を断片的にまとめたものしかない。
まづ小形さんの以下のBLOGとコメントを読む。当時の当事者が証言をしている。
http://d.hatena.ne.jp/ogwata/20051228/p1 シフトJISを発明したのは誰か?
http://d.hatena.ne.jp/ogwata/20051229/p1 シフトJISを発明したのは誰か?(2)
http://d.hatena.ne.jp/ogwata/20051230/p1 「BASIC80を漢字化した経理専用マシン」のこと
http://d.hatena.ne.jp/ogwata/20060102/p1 たくさんのコメント、ありがとうございます
安岡さんの日記も参考になる。
http://slashdot.jp/~yasuoka/journal/334730
情報処理学会の研究会資料(手書きだ、なんと)
http://fw8.bookpark.ne.jp/cm/ipsj/search.asp?flag=6&keyword=IPSJ-ARC82026002&mode=PDF


古川さんの証言

三菱電機のMulti-16で採用されていたコードとアスキーマイクロソフトが開発したシフトJISでは空白文字コードが違うという話がでている。

さてMulti-16のCP/M86で最終的に採用されたコードは、デジタル・リサーチ側の抵抗にあって、ShiftJISと関係の無いものになってしまいました。
それは、スペースコードの取り扱いで、アスキーマイクロソフトの定義では、1バイトのスペースコードは20hですが、2バイト系のスペースは別途定義したダブル幅のスペース
コードと文字データを定義するというものでしたが、デジタル・リサーチ側は2バイトの2020hで代用する、という定義を主張しました。

空白は制御記号的な意味合いもあるので、0x2020としたというのはある意味ハックではあったんだけど、2バイトの空白には制御文字的な意味合いを持たせないというプラクティスが広がったため、三菱電機が採用した方式は主流にはなれなかったような気がする。デファクトを確立することの難しさというか。シフトJISの2バイト空白は0x8140で、空白なので文字は見えないけど特別な意味はない。0x20は空白としての意味をいろいろなコンテキストで持つ。(コマンドを分離したり、プログラミング言語では字句を分離したりするのに使われたりする)