1バイトコード

文字コード

数値に文字を対応させてコンピュータに文字を扱えるようにしました。この文字に対応させた数値を文字コードといいます。

例えば...

文字コード 1 2 3 4 5 ....
文字 A B C D E ....

7ビットで 27=128 個の文字を表現できます。(英語のアルファベットは26文字しかないのでこれで十分でした)

8ビットで 28=256 個の文字を表現できます。(英語以外の言語の文字を加えるために8ビットにしましたが足りませんでした)

どの数値にどの文字を割り当てるかを取り決めておく必要がありますがやり方は1つではありません。

1バイトで済んでいた時代の文字コードでもいろいろ変遷があります。

文字コード 説明 ビット数
ASCII アメリカ合衆国の文字コード 7ビット
ISO/IEC 646 国際標準化機構の文字コード ASCIIを元にした国際規格 7ビット
ISO/IEC 8859 国際標準化機構の文字コード ASCIIを8ビットに拡張した 8ビット
JIS X 0201 日本の文字コード。ISO/IEC 646 を元に半角カナを追加 7ビット/8ビット

8ビットでも不足で世界はユニコードで統一に向かいます。それでもASCII部分はほとんど共通ですからそこを眺めてください。

ここでは次のことを理解・把握してください。

ASCIIコード

American Standard Code for Information Interchange の頭文字から作った名前でアスキーと読みます。もともとテレタイプで使っていたものを流用した7ビットコードで、残りの1ビットはチェックのために使っていました。

0x00から0x7fまでの128のコードのうち、0x00から0x1fまでは制御コードで普通の文字ではありません。改行や紙送り、バックスペース(一文字削除)、ベルを鳴らす、拡張文字の開始など機器を制御する信号に割り当てられています。

一般の文字は0x20から0x7eまでの95文字で、記号、数字、英字(大文字と小文字)からなっています。0x7fは歴史的理由により削除の意味の制御コードでです。

この文字コードから JISX0201 や ISO-8859-1 などいろいろな文字コードが作られましたが、どれも ASCII と呼んでしまうほどよく知られています。

US-ASCIIコード表

41 が A, 6D が m と読みます。

1桁目→
↓2桁目
01 23 45 67
0NUL DLE SP0@P`p
1SOH DC1 !1AQaq
2STX DC2 "2BRbr
3ETX DC3 #3CScs
4EOT DC4 $4DTdt
5ENQ NAK %5EUeu
6ACK SYN &6FVfv
7BEL ETB '7GWgw
8BS CAN (8HXhx
9HT EM) 9IYiy
ALF SUB *:JZj z
BVT ESC +;K[k{
CFF FS, <L\l|
DCR GS -=M]m}
ESO RS .>N^n~
FSI US /?O_o DEL

例えば...

文字コード 49 6E 66 6F 72 6D 61 74 69 6F 6E
文字 I n f o r m a t i o n

7ビットコードは8ビットの最初のビットが0であると考えると8ビットコードの半分と考えることができます。

ISO/IEC 646

アメリカ合衆国の規格であるASCIIを元にISO(国際標準化機構)とIEC(国際電気標準会議)が策定した7ビットコードをいいます。JISが基づいているのはこちらなのですが、ASCIIの知名度が高くこちらは知られていません。

英語ではASCIIのアルファベットで全部の文字が表現できますが、フランス語のアクサンやセデーユのついた文字、ドイツ語のウムラウトのついた文字やエスツェット、さらに各国の通貨記号などこれだけでは不足です。そこで ISO/IEC 646 では、0x23, 0x24, 0x5b~0x5e, 0x67b~0x7e は各国それぞれに必要な文字と入れ替えることができると決められました。日本では0x5cを¥に、0x7fを¯に割り当ててJIS規格としました。

なお、この国際基準版はASCIIと完全一致するよう1991年に変更されました。

ISO/IEC 8859

ISOとIECが合同で定めた、8ビット文字コード1です。8ビットにした分、いろいろな文字を追加することができます。ただし、0x80から0x9fの間も制御コードとして文字を配置していません。

結局8ビットにしても各国の文字をすべて入れるのには足りず、いくつかのパートに分けられました。混合して使用する言語の組み合わせを考えて決めており複数ののパートに登録されている文字もあります。

英語、ドイツ語、イタリア語など日本人がよく目にする文字はISO-8859-1かその改訂版のISO-8859-15を使うことで網羅されます。

ISO-8859-1

やはり、41がA, 6Dがmと読む。左半分はASCIIと同じ。

0123456789abcdef
0 0@P`p °ÀÐàð
1!1AQaq¡±ÁÑáñ
2"2BRbr¢²ÂÒâò
3#3CScs£³ÃÓãó
4$4DTdt¤´ÄÔäô
5%5EUeu¥µÅÕåõ
6&6FVfv¦ÆÖæö
7'7GWgw§·Ç×ç÷
8(8HXhx¨¸ÈØèø
9)9IYiy©¹ÉÙéù
a*:JZjzªºÊÚêú
b+;K[k{«»ËÛëû
c,<L\l|¬¼ÌÜìü
d-=M]m}­½ÍÝíý
e.>N^n~®¾ÎÞîþ
f/?O_odel¯¿Ïßïÿ

当然ながら1バイトで表現できない漢字をもつ中国、日本などの文字は規格になっていません。

しかし、1バイトで表現できる文字に限っても1バイトで全部を網羅できずにパートの切りかえの仕組みが必要になります。

この後、複数バイトを使い世界中の文字を切りかえ無しで表現するunicodeの策定が始まり、ISO/IEC 8859 の作業はここでとまっています。

ただ unicode を必要としない西洋のウェブページでは文字コードを指定する時には多くの場合 ASCII ではなく、ISO-8859-1かその改訂版のISO-8859-15を使っています。

ISO-8859-1とISO-8859-15の違い

大したことではない。一番大きいのはユーロの通貨記号です。

ISO-8859-1

ISO-8859-15

JIS X 0201

ISO/IEC 646 に基づき ¥ と ¯ を変更し、半角カナを加えたものです。ここには8ビットコードを書きましたが、7ビットで切り替えて使うものも定義されています。e列f列の「未」は未定義の部分です。8列9列は7ビットでは0列1列の制御コードと重なるので空けています。

濁点、半濁点は別になっていますので「ガ」は「カ」「゛」と2バイトで表現されます。

この半角カナは現在では漢字を含む文字コードの全角カナを使うのが望ましいとされています。

0123 4567 89ab cdef
0 0 @P`p  
1!1 AQaq
2"2 BRbr
3#3 CScs
4$4 DTdt
5%5 EUeu
6&6 FVfv
7'7 GWgw
8(8 HXhx
9)9 IYiy
a*: JZjz
b+; K[k{
c,< L¥ l|
d-= M]m}
e.> N^n¯
f/? O_odel ソ

ISO/IEC

ISO

国際標準化機構(こくさいひょうじゅんかきこう、International Organization for Standardization)、または略称 ISO(アイソ、アイエスオー、イソ)は、電気分野を除く工業分野の国際的な標準である国際規格を策定するための民間の非政府組織。本部はスイスのジュネーヴ。スイス民法による非営利法人。公用語はフランス語、英語、ロシア語。各国1機関が参加できる。(出典: フリー百科事典『ウィキペディア(Wikipedia)』)

英語:International Organization For Standardization

仏語:L'Organisation internationale de normalisation (OIN)

露語:Международная организация по стандартизации

国際標準化機構という名称を略称で表そうとしたとき、言語によって異なる略称になってしまう(英語ではIOS、フランス語ではOINなど)。そこでギリシア語のisos(均等、均質)にちなみ、言語や地域によらない短縮名としてISOが選ばれた。

IEC

国際電気標準会議(こくさいでんきひょうじゅんかいぎ、International Electrotechnical Commission、IEC)

電気工学、電子工学、および関連した技術を扱う国際的な標準化団体

聖愛中学高等学校
http://www.seiai.ed.jp/
Jun. 2011