具体的にどのように文字とビット列が対応するのかを見ていきましょう.まずは,各文字に対応するビット列が高々 1 バイト(8 ビット)のものです.
ASCII
世界で広く用いられている文字コードには ASCII(American Standard Code for Information Interchange,アスキー)と呼ばれるものがあります.これは文字集合と符号化を共に定めており,7 ビットで文字を表します.ASCII で定義されている文字はアルファベットや数字や記号,制御文字などですが,7 ビットを用いていますので 27 = 128 文字を表すことができます.1バイトが 8 ビットのコンピュータでは,下位 7 ビットのみを使って 1 バイトで 1 文字を表し,最上位ビットは使いません(0 にします).
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | HT | LF | VT | FF | CR | SO | SI |
1 | DLE | DC1 | DC2 | DC3 | DC4 | NAK | SYN | ETB | CAN | EM | SUB | ESC | FS | GS | RS | US |
2 | SP | ! | “ | # | $ | % | & | ‘ | ( | ) | * | + | , | – | . | / |
3 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
4 | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
5 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
6 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
7 | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | DEL |
これは ASCII の符号表で,文字とビット列の対応を示しています.左端の数は 7 ビットのうちの上位 3 ビットを,上端の数は下位 4 ビットをそれぞれ 16 進数で表したものです.例えば,28(16) = 0101000(2) は「(」,41(16) = 1000001(2) は「A」,69(16) = 1101001(2) は「i」に対応していることがわかります.
表を見るとわかるように,いくつかの区画に分かれています.
00(16)~1F(16) | 制御文字 |
20(16) | スペース |
21(16)~7E(16) | 通常の文字 |
7F(16) | 制御文字(削除) |
(「削除」以外の)制御文字 (control character) が先頭に集められ,その後に通常の文字が来て,最後に「削除」の文字が来ています.
ASCII 登場後に,国際規格として ISO 646 と呼ばれる規格が登場しました.これは ASCII (の制御文字を除いた部分)とほとんど同じですが,一部の文字に関しては国/言語ごとに入れ替えを可能としたものです.ASCII は ISO 646 のアメリカ版であると考えることができます.しかし, ISO 646 のうちの国際基準版というもので ASCII と同じ文字集合が規定されており,アメリカ一国だけでなく国際的に使える文字コードだと言えます.
JIS X 0201
JIS X 0201 は,ISO 646 の日本版(JIS ローマ字)と,カタカナ(JIS 仮名,半角カナ)を含んだ文字集合です.文字集合とは言っても,各文字にはわかりやすいように 8 ビットの番号が振られています.大雑把に言うと,次のような構成です.
- 8 ビットのうち,最上位のビットが 0 の部分には,ISO 646 の日本版が収められています.
- 一方,最上位ビットが 1 の部分には,日本独自のカタカナが収められています.
「下半分」の ISO 646 の日本版は,次のようになっています.ASCII(の制御文字を除いた部分)からは,5C(16), 7E(16) の2 文字がそれぞれ円記号,オーバースコア(上付き線)と変わっており,あとは同じです.7.3 文字コード にも,画像で JIS X 0201 の文字のリストを載せてあります.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | SP | ! | “ | # | $ | % | & | ‘ | ( | ) | * | + | , | – | . | / |
3 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
4 | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
5 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | ¥ | ] | ^ | _ |
6 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
7 | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ‾ | DEL |
一方,「上半分」の JIS 仮名は,以下のようになっています.実際に定義されているのは,A1(16) から DF(16)の部分です.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A | 。 | 「 | 」 | 、 | ・ | ヲ | ァ | ィ | ゥ | ェ | ォ | ャ | ュ | ョ | ッ | |
B | ー | ア | イ | ウ | エ | オ | カ | キ | ク | ケ | コ | サ | シ | ス | セ | ソ |
C | タ | チ | ツ | テ | ト | ナ | ニ | ヌ | ネ | ノ | ハ | ヒ | フ | ヘ | ホ | マ |
D | ミ | ム | メ | モ | ヤ | ユ | ヨ | ラ | リ | ル | レ | ロ | ワ | ン | ゙ | ゚ |
この JIS X 0201 に属する文字は,伝統的に縦横比が 2:1 の字形で表示されていました.そのため,これらの文字を半角文字と呼ぶ場合があります(文字コードで半角全角が定まっているわけではありません).特に,JIS 仮名のことを半角カナと呼ぶことがあります.
ISO-8859-1
ASCII は英語を使った文章のやりとりには十分ですが,アクセント記号やその他の文字を使うドイツ語・フランス語などには向きません.ISO/IEC 8859 と呼ばれる規格では,これらの欧州諸言語のための文字コードを 15 種類(ISO 8859-1 から 16 まで.12 は欠番)定めています.
ISO/IEC 8859 規格の文字コードは,JIS X 0201 と同じように 8 ビットの構成となっており,最上位ビットが 0 の部分には ISO 646 国際基準版(つまり,ASCII の制御文字でない部分)がそのまま,残りの最上位ビットが 1 の部分で追加の文字を規定するような構造です.特によく使われるのは,ISO-8859-1 と,それにユーロ記号追加などの修正を行った ISO-8859-15 です.