コンピュータが文字を表わすしくみ

コンピュータの中には様々な装置が入っていますが、文字を表示することに関係しているのは図示した4つの装置です。

用語解説
CPU(中央演算装置)
コンピュータの指令塔(ペンティアム等)。演算しながら各装置に指示を出す。
ファイル
数字が羅列された集合体で、メモリーデバイス(ハードディスク等)上に存在する。
フォント(字形)
数字に対応した字形を表す点図形の集合体で、メモリーデバイス上に存在する。
ディスプレイ(表示装置)
CRT(ブラウン管)、液晶等、電気信号を人間の目に見える形に変換する装置。
キーボードから打込んだ文字やネットから読み込んだ文章は、ファイルとしてメモリーデバイスに保存されます。 これを表示する手順は次の通り。
手順
@ CPUがファイルを読み込んで、まず初めの数字を把握する。
A CPUが、その数字に該当する点図形をフォントに尋ねる。
B フォントが該当する点図形を返す。
C CPUがその点図形をディスプレイに引渡して、表示させる。
以下、ファイルの字数だけ@〜Cを繰返すと、ディスプレイ上に文章が表示される。

ここで、Bで返す点図形についてもっと詳しく見ます。(数字は16進数を使います。)
●ファイルの最初の数字が「41」だったら、フォントは図の左図形を返します。これって縮小すると「A」に 見えるでしょう。
●次に「42」なら中図形(Bに見える)、「43」なら右図形(Cに見える)を返します。
●つまりファイルに41 42 43 と書いてあれば、右図の3文字が表示されます。ABCと読めるでしょう。
●逆に言うと、「ABC」と表示させたければ「41、42、43」とファイルに書き込めばよいのです。この数字を コードと呼びます。

ここまではASCII(American Standard Code for Information Interchange )で決まっていることで、 世の中の殆どすべてのコンピュータが使っているコード・フォント体系です。当然44に対応するフォントは「D」です。 参考までに、ASCII128文字ではどのコードがどのフォントに対応しているか右図に示します。 (00〜2Fの32文字はフォントのない、コンピュータ制御用の文字です。)このASCIIコードは 世界共通ですから、この範囲の文字を使っていれば、世界中のどのコンピュータでも表示可能です。

ではエスペラントの「C^」を表すにはどうすればよいでしょうか?ドイツ語のウムラウトや、フランス語の アクサンターギュなどはどうすればよいのでしょうか?それにはASCIIで決まっている128文字の他に、 更に128文字追加して、その中に各文字のコードを割当て、該当するフォントを用意すればよいのです。
こうして出来上がった拡張コード体系のうち、エスペラント文字を含むラテン3体系を右図に示します。拡張された 128文字の中にエスペラント(緑色)やドイツ語、フランス語等の文字が入っているのが分りますね。 つまり「C^」を表すには、ラテン3でC6(10進数で192)を指定すればよいのです。
ただ残念ながら日本で販売しているコンピュータにラテン3フォントが組込まれている例はまずないと 思われるので、買ってから各自が組込まないと働きません。

これでエスペラントとかドイツ語とか、特定の言語を表示することができるようになりました。次の問題は、 エスペラントと日本語とか、エスペラントとトルコ語とか、複数言語を表示することです。そのためには256文字 (1バイト)ではとても足らず、6万文字(2バイト)を体系化したユニコードという拡張系が作られました。 これだけ広げれば、漢字を含む世界中の文字が殆ど入ってしまいます。さらにユニコードを手直ししたUTF−8 コードも現れ、最近のコンピュータに取入れられるようになりました。
話を日本語に限ると、日本語は2000以上の漢字を含むため、始めから2バイト体系でコード化されていました。 代表的なのがJISコードですが、新しいJISにはエスペラント文字も取入れられることになりました。日本で 販売するコンピュータには、この新JISフォントがついているようになるでしょう。

このようにして、コンピュータの言語問題は、解決に向かっているようです。