目次> 第8章> 8.2 | TOPUPPREVNEXT |
この規格が制定された頃から、 文字コード(文字の符号系)は、符号化の対象となる 文字集合 を決める部分と、 文字集合の文字を具体的に符号化する方法 ( エンコーディング ) を定める部分に分けて 規格化されるようになりました。 文字の図形を選び、名前を付け、識別のためのビット組合せを決めるというところまでが、 「文字集合」の定義です。
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | O | @ | P | ` | p | ー | タ | ミ | ||||||||
1 | ! | 1 | A | Q | a | q | 。 | ア | チ | ム | ||||||
2 | " | 2 | B | R | b | r | 「 | イ | ツ | メ | ||||||
3 | # | 3 | C | S | c | s | 」 | ウ | テ | モ | ||||||
4 | $ | 4 | D | T | d | t | 、 | エ | ト | ヤ | ||||||
5 | % | 5 | E | U | e | u | ・ | オ | ナ | ユ | ||||||
6 | & | 6 | F | V | f | v | ヲ | カ | ニ | ヨ | ||||||
7 | ' | 7 | G | W | g | w | ァ | キ | ヌ | ラ | ||||||
8 | ( | 8 | H | X | h | x | ィ | ク | ネ | リ | ||||||
9 | ) | 9 | I | Y | i | y | ゥ | ケ | ノ | ル | ||||||
A | * | ; | J | Z | j | z | ェ | コ | ハ | レ | ||||||
B | + | : | K | [ | k | { | ォ | サ | ヒ | ロ | ||||||
C | , | < | L | \ | l | | | ャ | シ | フ | ワ | ||||||
D | - | = | M | ] | m | } | ュ | ス | ヘ | ン | ||||||
E | . | > | N | ^ | n | ョ | セ | ホ | ゛ | |||||||
F | / | ? | O | _ | o | ッ | ソ | マ | ゜ |
上記の表で、アルファベットや数字、カタカナなどの文字集合を定めようとしています。
とりあえずは、8ビットの符号の表として見てみましょう。 表の読み方は、8.2節と同じで、文字 A、H、I、J、K、L、p、q、 ア、カ、サ、ヤ、ラ、ワ は以下の通りです。
2進表示 | 8進表示 | 16進表示 | 10進表示 | 文字 | ビット組合せ |
01000001 | 101 | 41 | 65 | A | 4/1 |
01001000 | 110 | 48 | 72 | H | 4/8 |
01001001 | 111 | 49 | 73 | I | 4/9 |
01001010 | 112 | 4A | 74 | J | 4/10 |
01001011 | 113 | 4B | 75 | K | 4/11 |
01001100 | 114 | 4C | 76 | L | 4/12 |
01110000 | 160 | 70 | 112 | p | 7/0 |
01110001 | 161 | 71 | 112 | q | 7/1 |
10110001 | 261 | B1 | 177 | ア | 11/1 |
10110110 | 266 | B6 | 182 | カ | 11/6 |
10111011 | 273 | BB | 187 | サ | 11/11 |
11010100 | 324 | D4 | 212 | ヤ | 13/4 |
11010111 | 327 | D7 | 215 | ラ | 13/7 |
11011100 | 334 | DC | 220 | ワ | 13/12 |
表中太枠が12ヶ所ありますが、ISO/IEC 646 の規格では、 16進表示で、 23 には NUMBER SIGN(#) か POUND SIGN(£) を、 24 には CURRENCY SIGN( ) か DOLLAR SIGN( $ ) を、 それ以外の10ヵ所は各国で自由に文字を割り当ててよいことになっています。
いくつかの国の割り当てを掲げておきます。
23 2/3 | 24 2/4 |
40 4/0 | 5B 5/11 |
5C 5/12 | 5D 5/13 |
5E 5/14 | 60 6/0 |
7B 7/11 | 7C 7/12 |
7D 7/13 | 7E 7/14 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
米国 | # | $ | @ | [ | ] | ^ | ` | { | } | ~ | ||
日本 | # | $ | @ | [ | ¥ | ] | ^ | ` | { | | | } |
特に、7E(7/14)については、「JIS X 0201 付属書2 OVER LINE の 字形の許容範囲」 として、「送信者と受信者で合意があれば、TILDE と同じ字形を使用してよいが、文字の名称は OVER LINE でなければならない」と定めています。 許容できる図形記号は以下の3つ。
~ |
ここまでが、文字集合の話で、以降がエンコーディングの話です。
自然な流れとして、ここで定義されたコードがそのまま 8ビット符号 になります。
7ビットの符号としては、カタカナの A1 〜 DF の部分があふれてしまいます。
頭の1ビットを取り外して、7ビットにするかわりに、制御文字 シフトアウト SO(0/14) と
シフトイン SI(0/15)を前後につけることになっています。
たとえば、 ABCアイウXガ12Z という文字列を 7ビット符号 で表すと、
文字列 | A B C [SO] ア イ ウ [SI] X [SO] カ ゙ [SI] 1 2 Z |
ビット組合せ | 4/1 4/2 4/3 0/14 3/1 3/2 3/3 0/15 5/8 0/14 3/6 5/14 0/15 3/1 3/2 5/10 |
16進表示 | 41 42 43 0E 31 32 33 0F 58 0E B6 DE 0F 31 32 5A |
2進表示 | 01000001 01000010 01000011 00001110
00110001 00110010 00110011 00001111 01011000 00001110 10110110 11011110 00001111 00110001 00110010 01011010 |
カナ文字の ア と 数字の 1 がどちらも 16進の 31 で表されているのがわかります。
この SO と SI のように シフトアウトやシフトインを指定し、 それを打ち消す指定がくるまで、同じシフトの状態を続ける方式を、ロッキングシフト といいます。 これに対し、シフトが必要な文字の前に毎回シフト記号をつける方法は シングルシフト と呼ばれます。
更新日:2013/12/09 | TOPUPPREVNEXT |