この章ではLinuxで中国語を使う際に起こりうる障害について一般的な説明を します。そうすればあなたが問題に直面した時にキーポイントを簡単に見つけ出す ことができます。実際問題としてここで述べている欠点はLinuxだけでなく他のシステム でも生じることです。さらに全てのコンピュータ環境に関わることです。この章が あなたの意にそぐわなかったり、はやく使いたいというのであれば、ここを飛ばして、 中国語の表示/入力章にジャンプして下さい!
よく知られているように中国語の単語は2バイトで構成されています。 ポピュラーなエンコーディング方法は台湾で使われているBIG5コード、そして GBコードは中国本土で使われています。はじめのバイトは128より大きく 非ASCIIコードを呼ばれています(ASCIIコードは128より小さいコードです)。
そう、それで?これらが重要です!さまざま理由から、初期において多くのプログラム は全データの一部に非ASCIIコードの実現性を考慮しませんでした。
これらのプログラムは処理するデータをASCIIコードの範囲内に当然制限するものと されていました。問題は非ASCIIコードやASCIIコードに存在しないものに直面した 時に、8番目のビットのカットが行われてきたということです。これはいわゆる 8ビット消去(8-bit clean)問題と呼ばれるものです。
例えばプログラムにおいて、入力は7ビット幅ASCIIコードであるとしています。 中国語を入力すると8番目のビットを消して、中国語環境での入力は全て disturbedコードになります。
インターネット上の通信プログラムは普通7ビットデータのみ送ることができます。
有名なものとして初期のsendmail
プログラムがあります。sendmail
は
7ビットのメールのみ送受信できます。多くの偶数エンコーディング法(many odd
encoding methods)の対策が取られてきました(
エンコーディング章参照。.procmailrc
ファイルの
Content-Transfer-Encoding:
)。これは(uuencode, base64, QPなどと
いった)中国語メールを送信するものとして扱うものです。。私はよく「電子メール
の創始者がsendmail
にもっと先見性を与えてくれたらなあ」と思うことがあり
ましたが、現在はほとんど問題はありません。
インターネット上ではこのプログラムはちょっとやっかいです。
中国語メールを操作できるsendmail
プログラムをマシンにインストールしても、
受信者はどのようにしてもメールをdisturbされてしまうでしょう。
これは相手に到着するまでにメールがインターネット上に設置された
いくつかのホストを経由して送られるからです。ホストのsendmail
どれかひとつ
でも8番目のビットをカットしてしまうとだめになってしまいます。
クライアント/サーバの仕組みのプログラムに関して、問題はクライアントの終り
あるいはサーバの終りにあります:もしかしたら両方かもしれません。
中国語エンコーディングを見分けることができないアプリケーションにも問題が あります。非ASCIIコードデータを扱うことができないということは除きます。 つまりほとんどのプログラムは(正確に8ビットデータを扱うことができるものでも) 全て中国語文字を2つの異なるバイトとして解釈します。これはある条件のもと では問題を生じませんが、場合によっては不幸な惨事を招きます。
例えばもっとも明らかなのは中国語を正確に入力できたととしても、単語は2つに 分けられてしまい 1バイト(コラム)はモニタ上ではバックスペースとして、もう半分 はdisturbedコードになります。完全に文字を消去するためにバックスペースキーを 1回押さねばなりません。 さらにテキストエディタは中国語文字の真ん中で新しい行に変更してしまう可能性 もあります。そしてdisturbedコードが生じたり、新しい行に変更しないまま長い英語 文章として中国語の文章が表示されたり、画面に表示されているものがめちゃくちゃ になったりします。
さらに悪いことがあります!ある中国語の単語は特殊コード(あるアプリケーション の特定の方法に対応する)を含んでいて、これらのプログラムが(そのようなコードに 出くわした時)困難なエラーを生じてしまったり、めちゃくちゃになったりします。
ここである解決方法を以下に提案しますが、部分的な解決では不完全で不十分です。 全てのソフトウェアが中国語に適合する時だけ、問題はおそらく解決するでしょう。
もっとも最近ではi18n(internationalization)が重要視されるようにもなっています。 例えば多くのホストの sendmailプログラムは 8ビットメールを正確に処理できるようになっています(中国語メールを転送するのに 8ビットが必要なだけでなく、マルチメディアメールを送るのにも8ビットが必要です)。 多くのソフトウェアでは全く修正を必要としません。 同様に中国語ソフトウェアの製作に労力を捧げる人達も出て来ています。 期待して待ちましょう。