2007年04月02日

ネットで日本語が使えなかった理由(EJ第2051号)

 UNIXの国際語化――1984年以降、WIDEプロジェク
トの初期の頃ですが、村井氏はこの問題に没頭していたのです。
村井氏のこの努力が現在のインターネットの日本語化に結びつい
たといえます。インターネットは米国が開発したものであり、当
然のことながら、最初のうちは日本語が扱えなかったのです。
 そこで、村井氏が何をしたかを知っていただくために、少し面
倒な話をしなければならないのです。知っておくと後でいろいろ
なことに役立つので、ぜひ読んでいただきたいと思います。
 コンピュータの内部では、文字を数値として扱います。例えば
「A」という文字は「65」(16進数では「Ox41」)というコ
ードが割り当てられています。これを「文字コード」と呼んでい
るのです。
 コンピュータの黎明期においては、多くのメーカが独自の規格
でコンピュータを作っており、コンピュータ同士の互換性はまっ
たくなかったのです。
 しかし、それらのコンピュータが一つの企業、一つの大学、一
つの研究所で使われているうちは何も問題はなかったのですが、
それらのコンピュータをそれぞれ繋いで、企業間、大学間、研究
所間でデータを交換しようとすると、文字コードの互換性がない
ため、それはできなかったのです。
 こういう事態を受けて、米国の工業基準を定めているANSI
(アンシ)が乗り出し、データ交換用の標準的な文字コードとし
て定めたのが、ASCII(アスキー)です。
―――――――――――――――――――――――――――――
      ASCII
      American National Standard Code for
      Information Interchange
―――――――――――――――――――――――――――――
 ASCIIは本来はデータ交換時に使われる目的で作られたの
です。そのこと、ASCIIの最後の2文字――IIは「データ
交換用」という意味であることから明らかですが、多くの米国の
コンピュータメーカーは、データ交換時だけでなく、コンピュー
タ内部で文字を処理するさいの文字コードして採用したのです。
ASCIIは文字コードの中心的存在となのです。
 ここで、「ビット」と「バイト」の関係を知っておく必要があ
ります。「ビット」というのは情報の最小単位であり、具体的に
は「0」と「1」です。コンピュータではこの「0」と「1」し
か扱えないのです。コンピュータは2進数でできているのです。
 この「0」と「1」を8個集めた単位を「バイト」というので
す。つまり、次の式が成り立ちます。
―――――――――――――――――――――――――――――
          1バイト=8ビット
―――――――――――――――――――――――――――――
 この8ビット、これは10進数で2の8乗(0〜255)をあ
らわしています。すなわち、256個の数字を文字コードとして
使うと、欧米の文字は、種類が少ないので、それで間に合ってし
まうのです。これを「シングルバイト(1バイト)文字」という
のです。
 これに対して、日本をはじめとするアジアの国の言葉――例え
ば漢字などは8ビットではとても足りないので、8ビットの倍の
16ビット――2バイトを使うのです。2バイトは10進法では
2の16乗(0〜65535)ですから、これだけあれば十分で
す。これを「マルチバイト(2バイト)文字」というのです。
 しかし、欧米の文字は8ビットですべてあらわせるのですが、
英語に限ると、もっと少ない数で足りてしまうのです。
―――――――――――――――――――――――――――――
    アルファベット大文字 ・・・・・ 26個
    アルファベット小文字 ・・・・・ 26個
    数字 ・・・・・・・・・・・・・ 10個
    記号その他 ・・・・・・・・・・ 30個
    ――――――――――――――――――――
                     92個
―――――――――――――――――――――――――――――
 92個の文字であれば、2の7乗(128個)で足りることに
なります。そこで、米国ではシングルバイト(1バイト)文字は
使うのですが、文字そのものは7ビットで済ませてしまい、残り
1バイトは別の目的で使うことにして、ASCIIコードを決め
てしまったのです。これがマルチバイト文字を使う国々にとって
は、大きな障害となるのです。
 もっとも8ビット目に特別な意味を持たせなければ問題はない
のですが、世界の多くのソフトウェアは文字を表すのに7ビット
を使い、8ビット目に固有な意味を持たせているのです。とくに
UNIXというOSでは、この8ビット目を使うソフトウェアが
多くあり、これにマルチバイト文字を通そうとすると、エラーに
なってしまうのです。
 UNIXというOSは、ここまで見てきたように、通信ネット
ワークに深い関わりのあるOSであり、これがインターネットで
日本語が使えない原因だったといえます。村井氏はこのOSを開
発したベル研究所に働きかける必要があると考えたのです。
 それではどのようにしたら解決できるでしょうか。村井氏は解
決策としては次の2つしかないと考えたのです。
―――――――――――――――――――――――――――――
 1.すべてのソフトウェアにおいて、8ビット目に特別な意味
   を持たせないようにする
 2.日本語が7ビットを基準とした2バイトでも通るように何
   らかの工夫をこらすこと
―――――――――――――――――――――――――――――
 村井氏は、上記1についてはひたすら声を大にして世界に主張
するが、完全解決は難しいと考えて、とりあえず2に重点を絞る
ことにしたのです。   
        ―― [インターネットの歴史 Part2/18]


≪画像および関連情報≫
 ・文字コードの解説サイトから・・
  ―――――――――――――――――――――――――――
  文字コードは、間違いなく情報を交換するための「決まりご
  と」なので,正確を期すため厳密な仕様が規定されている。
  だが,その仕様そのものを実装するプログラムを作る場合を
  除けば,プログラマが仕様の詳細を隅々まで理解している必
  要はない。六法全書を読んでいなくても問題なく普段の生活
  ができるようなものだ。
  http://itpro.nikkeibp.co.jp/article/COLUMN/20061122/254626/
・ASCIIコード
  http://dennou.gaia.h.kyoto-u.ac.jp/arch/zz1998/mozi/zengaku.html
  ―――――――――――――――――――――――――――

@.jpg
posted by 平野 浩 at 04:36| Comment(0) | TrackBack(0) | インターネットの歴史 Part2 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック