ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
ISO/IEC 10646およびUnicode文字を8ビットの不定長として表現できるように変換したものの一つで、EBCDIC環境向け。
UnicodeからUTF-EBCDICまでは、二段階の変換過程を用いる。
これは、ASCIIとEBCDICの仕様の違いを吸収するためで、Unicodeから作られたUTF-8似の中間形式(UTF-8-Modと呼ばれる)は、EBCDICのコードページに近いものに変換することでUTF-EBCDICとなる。
復号は、この逆順となる。
まず、次のように符号化される。これは中間形式であり結果ではない。
UCS-4 (16進) | I8-Sequence (2進) |
---|---|
00000000〜0000007F | 0xxxxxxx |
00000080〜0000009F | 100xxxxx |
000000A0〜000003FF | 110xxxxx 101xxxxx |
00000400〜00003FFF | 1110xxxx 101xxxxx 101xxxxx |
00004000〜0003FFFF | 11110xxx 101xxxxx 101xxxxx 101xxxxx |
00040000〜003FFFFF | 1111100x 101xxxxx 101xxxxx 101xxxxx 101xxxxx |
00400000〜03FFFFFF | 1111110x 101xxxxx 101xxxxx 101xxxxx 101xxxxx 101xxxxx |
04000000〜7FFFFFFF | 1111111x 101xxxxx 101xxxxx 101xxxxx 101xxxxx 101xxxxx 101xxxxx |
UTF-8が1文字あたり6ビットを符号化するのに対し、I8-Sequenceは1文字あたり5ビットしか符号化できないため、概ねUTF-8より符号は長くなる。
その代わり、C0とC1を含めた範囲(U+0000〜U+009F)は、EBCDICの特徴から1オクテットで表現できる。
ここで得られたオクテット列は、各オクテットごとに表を参照し、EBCDICコードページの相当位置に変換する。これによって、UTF-EBCDICは完成する。
-0 | -1 | -2 | -3 | -4 | -5 | -6 | -7 | -8 | -9 | -A | -B | -C | -D | -E | -F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0- | 00 | 01 | 02 | 03 | 37 | 2D | 2E | 2F | 16 | 05 | 15 | 0B | 0C | 0D | 0E | 0F |
1- | 10 | 11 | 12 | 13 | 3C | 3D | 32 | 26 | 18 | 19 | 3F | 27 | 1C | 1D | 1E | 1F |
2- | 40 | 5A | 7F | 7B | 5B | 6C | 50 | 7D | 4D | 5D | 5C | 4E | 6B | 60 | 4B | 61 |
3- | F0 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | 7A | 5E | 4C | 7E | 6E | 6F |
4- | 7C | C1 | C2 | C3 | C4 | C5 | C6 | C7 | C8 | C9 | D1 | D2 | D3 | D4 | D5 | D6 |
5- | D7 | D8 | D9 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | AD | E0 | BD | 5F | 6D |
6- | 79 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 91 | 92 | 93 | 94 | 95 | 96 |
7- | 97 | 98 | 99 | A2 | A3 | A4 | A5 | A6 | A7 | A8 | A9 | C0 | 4F | D0 | A1 | 07 |
8- | 20 | 21 | 22 | 23 | 24 | 25 | 06 | 17 | 28 | 29 | 2A | 2B | 2C | 09 | 0A | 1B |
9- | 30 | 31 | 1A | 33 | 34 | 35 | 36 | 08 | 38 | 39 | 3A | 3B | 04 | 14 | 3E | FF |
A- | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 4A | 51 | 52 | 53 | 54 | 55 | 56 |
B- | 57 | 58 | 59 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 6A | 70 | 71 | 72 | 73 |
C- | 74 | 75 | 76 | 77 | 78 | 80 | 8A | 8B | 8C | 8D | 8E | 8F | 90 | 9A | 9B | 9C |
D- | 9D | 9E | 9F | A0 | AA | AB | AC | AE | AF | B0 | B1 | B2 | B3 | B4 | B5 | B6 |
E- | B7 | B8 | B9 | BA | BB | BC | BE | BF | CA | CB | CC | CD | CE | CF | DA | DB |
F- | DC | DD | DE | DF | E1 | EA | EB | EC | ED | EE | EF | FA | FB | FC | FD | FE |
EBCDICとしての仕様は、Latin-1対応のEBCDICとして一般的な、CP1047(Latin 1/Open Systems)に近い。
ASCIIの記号類は、全てCP1047と同じ符号位置に配置されており互換性が高く、Latin-1のアクセント付きアルファベットの代わりにUnicode文字を追加したような状態となっている。
UTF-EBCDICから復号する場合は、以下の表を用いてUTF-EBCDICからI8-sequenceを得る。
-0 | -1 | -2 | -3 | -4 | -5 | -6 | -7 | -8 | -9 | -A | -B | -C | -D | -E | -F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0- | 00 | 01 | 02 | 03 | 9C | 09 | 86 | 7F | 97 | 8D | 8E | 0B | 0C | 0D | 0E | 0F |
1- | 10 | 11 | 12 | 13 | 9D | 0A | 08 | 87 | 18 | 19 | 92 | 8F | 1C | 1D | 1E | 1F |
2- | 80 | 81 | 82 | 83 | 84 | 85 | 17 | 1B | 88 | 89 | 8A | 8B | 8C | 05 | 06 | 07 |
3- | 90 | 91 | 16 | 93 | 94 | 95 | 96 | 04 | 98 | 99 | 9A | 9B | 14 | 15 | 9E | 1A |
4- | 20 | A0 | A1 | A2 | A3 | A4 | A5 | A6 | A7 | A8 | A9 | 2E | 3C | 28 | 2B | 7C |
5- | 26 | AA | AB | AC | AD | AE | AF | B0 | B1 | B2 | 21 | 24 | 2A | 29 | 3B | 5E |
6- | 2D | 2F | B3 | B4 | B5 | B6 | B7 | B8 | B9 | BA | BB | 2C | 25 | 5F | 3E | 3F |
7- | BC | BD | BE | BF | C0 | C1 | C2 | C3 | C4 | 60 | 3A | 23 | 40 | 27 | 3D | 22 |
8- | C5 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | C6 | C7 | C8 | C9 | CA | CB |
9- | CC | 6A | 6B | 6C | 6D | 6E | 6F | 70 | 71 | 72 | CD | CE | CF | D0 | D1 | D2 |
A- | D3 | 7E | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 7A | D4 | D5 | D6 | 5B | D7 | D8 |
B- | D9 | DA | DB | DC | DD | DE | DF | E0 | E1 | E2 | E3 | E4 | E5 | 5D | E6 | E7 |
C- | 7B | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | E8 | E9 | EA | EB | EC | ED |
D- | 7D | 4A | 4B | 4C | 4D | 4E | 4F | 50 | 51 | 52 | EE | EF | F0 | F1 | F2 | F3 |
E- | 5C | F4 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 5A | F5 | F6 | F7 | F8 | F9 | FA |
F- | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | FB | FC | FD | FE | FF | 9F |
再配列されているために、UTF-8と違って、各オクテットを見ただけでは続く符号長が簡単には分からない。
そこで、次の表を参照して判断する。数字の意味は次の通り。
-0 | -1 | -2 | -3 | -4 | -5 | -6 | -7 | -8 | -9 | -A | -B | -C | -D | -E | -F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0- | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1- | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2- | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3- | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
4- | 1 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 1 | 1 | 1 | 1 | 1 |
5- | 1 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 1 | 1 | 1 | 1 | 1 | 1 |
6- | 1 | 1 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 1 | 1 | 1 | 1 | 1 |
7- | 9 | 9 | 9 | 9 | 2 | 2 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
8- | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 |
9- | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 |
A- | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 1 | 2 | 2 |
B- | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 3 | 3 | 1 | 3 | 3 |
C- | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 3 | 3 | 3 | 3 | 3 |
D- | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 3 | 4 | 4 | 4 | 4 |
E- | 1 | 4 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 4 | 4 | 4 | 5 | 5 | 5 |
F- | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 5 | 6 | 6 | 7 | 7 | 0 |
■は、2バイト以上のUTF-EBCDICの1バイト目を表わす。
▲は、2バイト以上のUTF-EBCDICの2バイト目以降を表わす。
上位4ビット(4/0〜15/15) | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
4- | 5- | 6- | 7- | 8- | 9- | A- | B- | C- | D- | E- | F- | |
-0 | SP | & | - | ▲ | ■ | ■ | ■ | ■ | { | } | \ | 0 |
-1 | ▲ | ▲ | / | ▲ | a | j | ~ | ■ | A | J | ■ | 1 |
-2 | ▲ | ▲ | ▲ | ▲ | b | k | s | ■ | B | K | S | 2 |
-3 | ▲ | ▲ | ▲ | ▲ | c | l | t | ■ | C | L | T | 3 |
-4 | ▲ | ▲ | ▲ | ■ | d | m | u | ■ | D | M | U | 4 |
-5 | ▲ | ▲ | ▲ | ■ | e | n | v | ■ | E | N | V | 5 |
-6 | ▲ | ▲ | ▲ | ■ | f | o | w | ■ | F | O | W | 6 |
-7 | ▲ | ▲ | ▲ | ■ | g | p | x | ■ | G | P | X | 7 |
-8 | ▲ | ▲ | ▲ | ■ | h | q | y | ■ | H | Q | Y | 8 |
-9 | ▲ | ▲ | ▲ | ` | i | r | z | ■ | I | R | Z | 9 |
-A | ▲ | ! | ▲ | : | ■ | ■ | ■ | ■ | ■ | ■ | ■ | ■ |
-B | . | $ | , | # | ■ | ■ | ■ | ■ | ■ | ■ | ■ | ■ |
-C | < | * | % | @ | ■ | ■ | ■ | ■ | ■ | ■ | ■ | ■ |
-D | ( | ) | _ | ' | ■ | ■ | [ | ] | ■ | ■ | ■ | ■ |
-E | + | ; | > | = | ■ | ■ | ■ | ■ | ■ | ■ | ■ | ■ |
-F | | | ^ | ? | " | ■ | ■ | ■ | ■ | ■ | ■ | ■ | APC |
ASCIIに含まれる文字は、全て1バイトの範囲内に含まれる。
それ以外の文字を、空き領域を用いて符号化するが、UTF-8と同様、1バイト目と2バイト目以降で重複しないように工夫されている。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます