川俣晶『パソコンにおける日本語処理/文字コードハンドブック』(技術評論社、1999)と『電脳社会の日本語』5章講読

『パソコンにおける日本語処理/文字コードハンドブック』

JIS X 0208(7ビットおよび8ビットの2バイト情報交換用符号化漢字集合)-1983(P.171)  位置付け(P.170)

漢字利用が本格化する直前に、メーカーが独自に符号化文字集合を作成することは好ましくないということで、標準規格が作られることになった。

歴史(P.171)

1. 39文字の特殊文字および32文字の計線文字の追加
2. 4文字の感じの追加
3. 22組の漢字について第1水準と第2水準との間での入れ替えと4文字の第1水準への追加に伴う第2水準への移動
4. 300文字の漢字の字形の変更
特徴 (P.172)
基本的に、JIS X 0208は、単体で使用されることを想定した符号化文字集合。

JIS X 0212−1990(情報交換用漢字符号−補助漢字)(P.175)
位置付け(P.175)
JIS X 0208では文字が足りないという批判に対応するため、これへの追加符号化文字集合として、JIS X 0212補助漢字が制定された。
歴史(P.178)
Windows NT漢字処理技術協議会が、足りない人名漢字文字を「外字」として用意することを前提としているのに対して、第3水準、第4水準は、人名漢字をすべて網羅した文字セットを用意することで、外字なしで戸籍業務などを実現することを目標としている。そのため、第3水準、第4水準では、シフトJISでメーカーが独自に外字領域としていた部分を潰して利用するなど、外字との共存を考えていない。
特徴 
教科書を調査し、第3水準、第4水準を使えば外字を用いなくても教科書を記述できるようにする模様である。

Unicode 2.1(The Unicode Standard, Version 2.1) (P.179)
位置付け(P.180)
Unicodeは、世界各地域の各言語の文字を収録した国際符号化文字集合である。Unicodeコンソーシアムという私的な企業集団によって制定されている。基本的には、パソコンなどのシステムの従来からの符号化文字集合、文字コードを置き換えることを意図している。
歴史(P.181)
もし、すべてのユーザーが使用する文字が、単一の符号化文字集合に含まれ、単一の文字エンコーディングスキームで記述できるとすれば、従来、符号化文字集合や文字エンコーディングスキームの違いに対応するために、こまめにシステムを修正してきた手間を省略できることになる。
米国企業は、すべての文字を16ビットで表現するという大も行く表を掲げたのだが、これによりUnicodeは、日本ではほとんど相手にされなかった。すべての文字を収録する次世代の符号化文字集合が、16ビットでは不足であるというのは、日本では半ば常識であった。しかし、米国人は、結局、16ビットで表現するという方針を曲げず、それを強引に押し通すような形でUnicodeを制定した。
特徴
Unicodeの特徴は、文字を16ビットで表現することである。しかし、現実のUnicodeは、「1文字=16ビット」と単純に考えることはできない。その理由は2つある。1つは、合成文字を許容していることである。もう1つは、Unicode 2.0より付加されたUTF-16の「サロゲートペア」の存在である。サロゲートペアが入ると、そこだけ「1文字=32ビット」となるのである。
 日本においてもっとも批判されるのが、「ハンユニフィケーション」である。これは日本、中国、韓国の間で同じと見なしうる漢字には、1つの文字コードしか与えないというものである。(P,182)
注意点(P.183)
Unicodeには、文字エンコーディングスキームが何種類もある。(中略)Unicodeと従来の文字コードの間には、簡単な変換ロジックが存在しない。(中略)たとえば、A社のソフトで従来使っていた文字コードからUnicodeに変換して送信し、B社のソフトでそのデータを従来の文字コードに変換すると、もとどおりのデータに戻らないことがあるということである。これは、現実問題として本書執筆時点のUnicodeの最大、最悪の欠陥である。

シフトJIS(シフトJIS、Shift JIS、MS漢字コード) (P. 192)
位置付け
パソコン用のデファクトスタンダードになっている間接的な文字エンコーディングスキームである。忘れてはならないことは、「シフトJISは符号化文字集合ではない」ということである。シフトJISを指定するだけでは、符号化文字集合を指定したことにはならないのである。
特徴 (P.193)
シフトJISが規定しているのは、ある94文字×94文字の符号化文字集合をJIS X 0201と併用できる文字コード空間に押し込める(文字コードをシフトする)ルールだけである。
注意点(P.195)
未定義のコードが存在することには、十分に注意を払わなければならない。未定義であるということは、そのような文字コードを記述したテキストをさまざまなシステムで利用した場合に何が起こるかわからないということである。何が起こるかわからないということは、最悪、システムに致命的なダメージを与えかねないということである。

JIS X 0202−1991(ISO−2022:1986)(情報交換用符号の拡張法)
位置付け(P.195)
文字を拡張するということには、2つの考え方がある。1つは、Unicodeに見られるように符号化文字集合のサイズそのものを拡大し、より多くの文字を単一の符号化文字集合に追加していく方法、もう1つは、既存の符号化文字集合は、そのままとして複数の符号化文字集合を切り替えて使用するシステムを用意する方法である。JIS X 0202(ISO-2022)は、後者の方法を使用している。

ISO−2022−JP(RFC1468 Japanese Character Encoding for Internet Messages 1993)
位置付け(P.204)
インターネット上で、電子メールなどに日本語を使用するために考案された文字エンコーディングスキームである。
歴史
当初は、やや強引に日本語を送信する形であったが、現在では、MIME(Multipurpose Internet Mail Extensions)によって電子メールの多言語対応の方式が規定され、この枠内でISO-2022-JPのメッセージも処理されている。
特徴
基本的には、ISO−2022(JIS X 0202)と同じエスケープシーケンスと使用した符号化文字集合切り替えにより、ASCII、JIS X 0201ローマ文字とJIS X 0208を切り替える。
文字コードの配置(P.206)
エスケープシーケンスは、「ここからはXXという符号化文字集合を使う」ということを宣言する機能をもつ。次の符号化文字集合が出現するまでその状態は変わらない。


『電脳社会の日本語』第5章 グローバル・スタンダードをめぐる攻防

第二の国際文字コード(P,133〜142)
中国は、1981年5月、GB 2312(GB基本漢字)を制定する。台湾は、1986年にCNS 11643(CNS台湾基本漢字)を、韓国では1987年にKSC 5601(KS基本漢字ハングル)を定めている。1985年にはISO 2022との互換性を重視したアメリカ案(A案)と、互換性をご破算にして、新規に16ビットコードを設計する英国案(B案)の2つが作業部会に提出された。第二専門委員会は票決をおこない、ISO 2022との互換性を重視したA案を圧倒的多数で可決した。
 10646試案の開発がはじまったころ、中国は2つの補助集を制定し、日本はJIS補助漢字、韓国はKS補助漢字ハングルにとりかかっていた。台湾では試案段階のCNS台湾漢字の文字セットをシフトJIS方式でならべかえたBig 5が急速に広まり、CNS台湾漢字も正式に施行されようとしていた。10646試案は1989年1月完成。試案は、国際原案(DIS)に進んだ。ところが1990年6月、中国が補助的な文字コードの漢字もBMP(Basic Multilingual Plane)に入れたいと言い出したために、スワッピング・メソッドという方法を採用することになり、A案で漢字の入っていた各4分句16区以降はあけておくことになった。

アメリカの中・日・韓「漢字統合」構想(P,143〜153)
10646原案は、国際原案の段階までいきながら、1991年4月否決された。アメリカ代表が10646原案のBMP(基本多言語面)を「ユニコード」で置きかえよという動議を出したのである。ここで否決にいたるまでの経緯をたどろう。
 ユニコードとはアメリカ西海岸の大手コンピューター企業の有志が独自に開発をすすめていた内部処理用コードである。B案が中日韓の国内規格をそのまま収録したのに対し、ユニコードは三国の漢字を統合した上で収録している。
 国文学を専門とする田嶋は「漢字シソーラス」によって、テキストに異体字情報を付加するモデルを提案する。異体字情報を「漢字シソーラス」として独立させれば、文字コードには代表字体のみを収録するだけでいいことになる。「漢字シソーラス」は、日中韓の文字コードとEACC(東アジア文字コード)を相互変換するための変換表、「CKJ(チャイナ、ジャパン、コリア)シソーラス」という形で実現した。
 統合漢字構想は普遍文字コード構想へ膨張していった。そして、Universal(普遍的)で、Uniform(固定長)で、Unique(一意的)というモットーから、「ユニコード」という名称が考案された。ユニコードを推進する技術者はみずからをユニコーダーと呼ぶようになった。
 日本は統合漢字案に反対した。漢字を統合すること自体に問題があると考えたからである。漢字を同定する基準が国によって異なっていた。しかし、ユニコーダーは頑として譲らなかった。韓国は漢字には興味がなく、中立的な立場をとったが、漢字処理で日本の後塵を拝してきた中国はアメリカ提案に肯定的だった。ISOの第二専門委員会ワシントン会議は、ユニコーダーの説得工作にもかかわらず、10646原案を従来どおりの路線で開発をつづけることを決議した。
 国際的孤立を深めていた中国は、中国文字コード協会の設立趣旨から逸脱して、アメリカ西海岸北部のある企業との密接な協力のもとに、HCC(Han Character Collection)という統合漢字表の開発に着手した。1990年6月の第二作業部会札幌会議で、BMPにGB基本漢字だけでなく、BMPで漢字のはいるI領域をそっくりHCC統合漢字表に置きかえることを提案した。
 第二作業部会はスワッピング・メソッド(BMPで漢字のはいるI領域を空白にしておき、別にBMPと同じ構造の面を国別につくり、そのI領域に漢字を入れておくというもの)をとりいれた案を可決。10646原案は11月に完成。規格の名称はUCSS(Universal Coded Character Set、万国符号化文字集合)に決まった。

対米貿易摩擦と漢字問題(P,153〜160)
 第二作業部会サンフランシスコ会議で、10646原案とユニコードの折衷が議題になり、もし折衷案をつくるとすれば、拡張ローマ字やハングルは10646原案方式で完成系の文字だけでいくか、ユニコード方式で合同文字でいくか、漢字統合は不可避かどうか、制御符号領域を撤廃するかどうかが問題になることを確認した。
 1991年7月の東京会議で、日本は漢字統合の基準として、XYZモデルを提案し、これを基本にするという合意はあっさりまとまった。配列は康煕字典を基本とし、康煕字典にない文字は大漢和辞典(日本)、現代漢語大辞典(中国)、大字源(韓国)の順に参照することになった。 中日韓合同検討会は、終始ユニコーダーと中国のペースで議事が進み、12万字の候補を2万字に圧縮したCJK統合漢字第一版を完成した。
 10646修正原案は1992年1月に刊行され、5月を期限に国際投票がはじまった。8ビット×4の最初の10646原案と、16ビットを1バイトするユニコードをどう折衷したのか?修正原案では短縮法をヒントに、BMPを半ば独立させることで、決着をつけた。
 ユニコードは文字を統合する一方で、記号類は無秩序にいれている。しかし記号よりも影響が大きかったのは、ハングルの扱いだった。ユニコーダーの強い反対で完成形はKS基本漢字ハングルとKSC 5657(補助漢字ハングル)、中国のGB 12052(GBハングル)、合計6656字に抑えることになった。他に技術的な難点がいくつか指摘されたが、検討する余裕のないまま、修正原案がまとめられた。そして投票で承認され、1993年、ISO10646-1としてISO規格になった。この規格はコード構造とBMPの内容を規定している。日本は1995年にJIS X 0221として国内規格化した。
 漢字は、最終的にはCJK統合漢字第二版の2万92字が収録された。CJK統合漢字は中台韓の規格案の字体を四欄併記しており、各国は自国の字体を用いる。

バベルの塔を建てた後に(P.160〜166)
ユニコーダーたちの3つのUに(Universal, Uniform, Unique) に懐疑的な関係者が少なくなく、各国から追加要求が相次ぎ、BMPはたちまち満杯になり、BMP以外の面への拡張を考えなければならなくなった。韓国のナショナリストはハングル専用論者が多く、全ハングル収録要求はナショナリズムの問題に発展しかねなかった。ユニコード側はついに折れ、積み残しのハングルを追加した。BMPに入りきらなかった文字は、サロゲートペア(P.162)と呼ばれることになる拡張法を発明した。ISO側ではサロゲートペアをUTF-16という符号化方式として取り込んだ。(P.163)
 ユニコードとISO 10646はISO 2022とならぶ第2の国際的な文字コードになったが、コンピュータ・ネットワークはISO 2022が基本になっているので、そのままの形で流せないものもある。そこで符号変換方式であるUTF-8(P.166)が使われた。

(文責:成田)