[Edit][Create New]
[ IndexPage / ネットとプログラミング / web296 / No76.txt ]

No76.txt

●半角カナと機種依存文字(7回目: 機種依存文字の是非)

前回は「機種依存文字」という言葉の成立ちについて簡単に解説しましたが、今
回は機種依存文字とは何なのか、もうすこし掘り下げて見ていこうと思います。

現在では「機種依存文字」という言葉は「環境によって表示できたりできなかっ
たりする文字」として捉えられ、「そういったものは使ってはいけない」という
認識が広まっています。しかし果たして本当にそうでしょうか?

そもそも世界中の全ての端末から見れば、日本語だって立派な機種依存文字でしょ
う。ASCIIですら表示できない端末も、決して多くはないですが確かに存在します。
厳密に言えば、全ての環境で表示できる「非機種依存文字」などというものは存
在しないのです。

つまり筆者は「環境に依存する文字の使用自体には問題はない」と考えます。で
は何が問題なのか?

一般に「機種依存文字問題」と思われている問題は大きく2つに分けることができ
ます。

1つは「ある文章が、どういったルールで書かれているか、読む側が分からない」
状態。

まさしく初期のパソコン通信がこの状態にありました。具体的には、PC-9801シリ
ーズや漢字Talk搭載のApple Macintoshシリーズにおいて、JISの文字セットを勝
手に(しかも両者バラバラに)拡張した(シフトJISには、明確な規格がないため、
独自拡張を縛る制限はない)文字セットを使用し、しかも両者の文字セットの違い
を無視して相互に文章交換を行っていたため、独自拡張部分の衝突による障害が
頻発しました。これがいわゆる「機種依存文字問題」の誕生です。

ここで、お互いの文字セットを認識して相互変換して表示するプロトコルを使用
すれば良かったのですが、当時のマシン性能では困難が伴います。そこでせめて
「機種依存文字(当時は罫線文字(┌┣など)や音符文字(♪)もこう呼ばれていまし
た)は使わないようにしよう」という暗黙の了解で問題を回避してきたのです。

さて、もう1つの問題は「ある文章が、守るべきルールに違反して書かれている」
状態です。

上記のような混乱を踏まえてか、HTTP/1.1からは、HTTPヘッダのContent-Type:行
に、charset=Shift_JISというように使用した文章の文字コードを指示できるよう
になりました。HTMLも現在では<META>要素でcharsetを指示できるようになってい
ます。特にHTTP/1.1に関しては、IANAで指定されたMedia Type以外は使用できな
いことになっており、HTTPを使う以上、勝手な文字セットの使用は許されなくなっ
ています。

以前紹介したように、現在Webページで日本語を表現するには、主にShift_JIS、
EUC-JP、ISO-2022-JPの3つが使われています。そしてこれらはJIS X 0208で定義
された文字セットしか使用できないという制限があります。

しかし現在のWindowsやMacOSでも、昔の独自拡張の文字セットをそのまま継承し
ており、そのくせ符号化はShift_JISと完全に同一であるため、一見Shift_JISに
見える、しかし未定義の文字が含まれている文章を簡単に作ることができます。
多くの場合EUC-JPやISO-2022-JPへのコンバートしてもこれは変わりません。環境
によって表示できる、できないの問題以前に、「××という文字コードを名乗っ
ているのに、中身はそうなっていない」ことが問題なのです。

おそらくほとんどの方は、(株)や「メートル」などが1文字にまとめられている文
字や丸囲み数字などに対して「機種依存文字でWebでは使ってはいけない」という
認識を持っているのではないでしょうか? しかし実はこれもUTF-7などではきちん
と定義されているので、UTF-7を名乗って使用することには、全く何の問題もあり
ません。郵便マーク単にUTF-7があまり普及していないだけの問題なのです。

逆にShift_JISやEUC-JPにおける半角カナにおいては、きちんと定義されている文
字なので、使用しても規格上の問題はありません。