Menu

インターネットの基礎講座

文字コードってわかりますか?

◆ はじめに

アルファベット、数字(acb...ABC...123...)がモニタに表示されますが、
コンピュータ内部では、2進数(16進数)で認識されます。
つまり、aは0x61(16進数)、Aは0x41、1は0x31のようにコードで認識されます。
この認識の仕方に大きく分けて、ASCIIコードとEBCDICコードの2種類の文字コードがあります。


◆ EBCDICコード(エビシディクコード Extend Binary-Code-Decimal Interchange)

EBCDICコードはメインフレーム、オフコンと呼ばれるIBM系のマシンに使用されています。
将来的には、メインフレーム、オフコンと一緒に淘汰される運命にありますので、
ここでは、省略します。


◆ ASCIIコード(アスキーコード American Standard Code for Information Interchange)

一方、ASCIIコードは華やかです。PC、Mac、UNIXすべてASCIIコードです。
ただし、改行コードの扱いが各マシン統一されていません。

  [ASCIIコード]
   0x00〜0x1F:コントロール文字(通信などに利用されます)
   0x20〜0x40:記号/数字
   0x41〜0x5A:AからZ
   0x61〜0x7A:aからz

0123456789ABCDEF
0NULSOHSTXETXEOTENQACKBELBSHTLFVTFFCRSOSI
1DLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUS
2 !"#$%&'()*+,-./
30123456789:;<=>?
4@ABCDEFGHIJKLMNO
5PQRSTUVWXYZ[\]^_
6`abcdefghijklmno
7pqrstuvwxyz{|}~DEL

以上は英語圏のお話です。


◆ カタカナコード


日本では、アルファベット、数字以外にカタカナと漢字があります。

カタカナには3種類あります。JIS7、JIS8、EUCです。

JIS7はASCIIコードの0x21〜0x5fまでにカタカナを割り当てます。
数字、アルファベットと区別させるためSO(0x0E)が先行した時はカタカナで、
SI(0x0F)が先行した時は、従来のASCIIコード(数字、アルファベット)とします。

JIS8はASCIIコードが7ビットなのに対して、8ビットで認識できます。
つまり、0xA1〜0xDFまでにカタカナを割り当てます。

EUCのカタカナは、JIS8のカタカナコードの前に0x8eを付加し、2バイトで認識します。
つまり、JIS8のカタカナは半角1文字にたいして1バイトですが、EUCは2バイトになります。


◆ 漢字コード

漢字も3種類あります。JIS、シフトJIS、EUCです。それぞれ2バイトで認識します。

JIS漢字は0x2121〜0x7E7Eに漢字を割り当てます。すると、ASCIIコードとダブってしまうので、
エスケープシーケンスで区別します。"ESC(B"が先行するとASCIIコードで、
"ESC$B"が先行するとJIS漢字となります。
特に、インターネット(メール)で使用されます。

シフトJIS漢字は、JIS漢字コードをASCIIコードとダブらないように”変則的”にシフトさせたコードです。
つまり、JIS漢字を0x8140〜0xFCFCのエリアに変則的にシフトさせたコードです。
特に、PCで使用されます。

EUC漢字も、JIS漢字コードをASCIIコードとダブらないように”規則的”にシフトさせたコードです。
つまり、JIS漢字の0x2121〜0x7E7Eに0x8080を加算した0xA1A1〜0xFEFEのエリアにシフトさせたコードです。
特に、UNIXで使用されます。

上記以外にも、アルファベット、数字まで2バイト認識のUnicodeがありますが、
VB(Visual Basic)の内部コードに使用されているぐらいです。(私が知っている限りでは)

追記:今の現時点(2001-07-25)では、Unicodeがウェブでも主流になってきているみたいです。


Menu