漢字コードの種類


現在主に使われている漢字コードは、JIS, Shit_JIS, EUC の 3種類がありま す。
JISコード

通信用に定められた為に、基本的に 7bit だけが使われます。 シフトコードにより、漢字セットを変更して使います。

ISO-2022-JP とも呼ばれています。これは、RFC で 定められた物で、ISO が定めたという訳ではありません。また、 いわゆる半角カナと呼ばれる物や補助漢字をを含んでいません。 また、ISO-2022-JP-2 と言う物もあります。これは 補助漢字や中国・韓国のコードも含んでいます。

Shift_JIS

シフトJIS。SJIS と略される事が多いです。 Microsoft によって定められた為、Microsoft漢字コード とも呼ばれます。JISコードを巧妙にシフトしている事からそう呼ばれ ています。 巧妙すぎて、コンポーズドJIS とでも呼んだ方が正確な気がします。 JIS にも入りました。その為に、Shift_JIS を JISコードと呼んでも 間違いと言うわけではありません。

主にパソコンやパソコン通信で使われていますが、最近では インターネット幅を利かせるようになって来ました。ANK 文字(英数記号)と、いわゆる半角カナを 1オクテット(8 bit)で表し、 漢字を 2オクテットで表します。その為に画面上の幅とデータの量が 一致するので便利です。さらに、漢字の1オクテット目と2オクテット目の 重なりが少ない為に、データの欠落の後の復旧が容易です。

しかし、英数字とも重なっている為に、プログラムを注意して 作らないと、コンパイルエラーを起したり漢字を含んだファイルを 扱えません

余裕なくびっしりコードが割り当てられている為に、補助漢字を使う 事が出来ません。補助漢字が全然普及しなかったのはその為でしょう。

EUC コード

Extended UNIX Code の略。だからEUCコードと書くのは本当は おかしいです。 AT&Tによって定められまし た。主に UNIX で使われています。

至極簡単に説明すると、JISコードに 8bit目を立てた物です。 表現を変えると、JISコードを 128だけシフトした物です。 むしろこちらの方をシフトJISと呼んだ方がいいような気がします。 多バイト文字です。

ASCII/ JIS コードを表す時は 0x21〜0x7Eを使い、1オクテットで表し ます。JIS X 0208-1990 (第1水準, 第2水準) を使う時は 0xA1〜0xFE を 2オクテット使います。半角カナ(JIS X 0201)を使う時は 第1オクテット目に 0x8E、第2オクテット目に 0xA1〜0xDF を使います。 JIS X 0212-1990 (補助漢字)を使う時は第1オクテット目に 0x8F、第2第3オクテット目に 0xA1〜0xFE を使います。

第1オクテット第2オクテット 第3オクテット
ASCII/ JIS0x21〜0x7E
JIS X 0208-1990 0xA1〜0xFE0xA1〜0xFE
半角カナ 0x8E0xA1〜0xDF
JIS X 0212-1990 0x8F0xA1〜0xFE0xA1〜0xFE

この他にも、色んなコードがあります。例えば、Unicodeや TRONコードです。

Unicode

アメリカのコンピュータメーカー等が考えたコード。20,902 字の 漢字を含んでいます。日本からは、JIS 第1水準・JIS 第2水準・JIS 補助漢字・IBM拡張が採用されました。ISOや JISにもそれぞれ ISO10646-1, JIS X0221 として入っています。

世界中の字を無理やり 16bit に納めているため、かなり問題があると言われ ています。例えば、ユニフィケーションと言って、似たような字を同じコード に割り振っている事です。一見合理的にも見えますが、「『骨』と言う字は中 国では『骨』と書きます。」と言う文が表現できません(もっとも、今ある たいていのコードで表現できません)。欧米人は日本語と英語の共存は考え付 いても、日本語と中国語の共存は考えられないようです。ドイツ人とフランス 人は話をしないのでしょうか(仲悪そうなのでしないのかも)。また、不思議 な事にどうしてこの文字が Unicode に入ったかを調査する委員会があるとい う話です。

その割に、欧米の文字はちゃんと分けられています。つまり、英語の「A」、 ギリシャ語の「Α」、ロ シア語の「А」は全部別です。

しかし ユニフィケーションの利点として、「grep 毛沢東」が 出来る事があります。日本語と中国語などを全然別の領域に割り当てると、当 然同じ字が別の領域に割り当てられる事になります。すると、文献の中から 「毛沢東」を探したい時に、日本語で書かれている文献の「毛沢東」は検索で きるが、中国語で書かれている「毛沢東」は検索出来ないと言う事が起こりま す。しかし、「毛沢東」が同じコードに割り当てられていると、どの言語で書 かれていても「毛沢東」が検索できます。これが「grep 毛沢東」 です。

Unicode や TRONコードの詳しい話は、TRON多言 語テクストプロセシングシステムに関する バーチャルシンポジウムでも 読むと良いかも知れません。


前へ 次へ
戻る
(c)1997-2001 村上 智一
Last modified: Fri Jan 5 17:35:01 2001