コンピュータが文字を表わすしくみ
コンピュータの中には様々な装置が入っていますが、文字を表示することに関係しているのは図示した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フォントがついているようになるでしょう。
このようにして、コンピュータの言語問題は、解決に向かっているようです。