EBCDIC
EBCDIC(英語:Extended Binary Coded Decimal Interchange Code,擴增二進式十進交換碼),為IBM於1963年-1964年間推出的字元編碼表,根據早期打孔機式的BCDIC即一種二進化十進數(BCD,Binary Coded Decimal)資訊交換編碼改進而成。是IBM迷爾級以上電腦的標準碼。
它的缺點是:英文字母不是連續地排列,中間出現多次斷續,為撰寫程式的人帶來了一些困難。
字元對應
EBCDIC編碼表,最初定義了(不計空白字元在內的)88個可列印字元,同時還定義了減去26個小寫字母後的62個可列印字元的子集[1]:
EBCDIC | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0x | NUL | SOH | STX | ETX | SEL | HT | RNL | DEL | GE | SPS | RPT | VT | FF | CR | SO | SI |
1x | DLE | DC1 | DC2 | DC3 | RES/ ENP |
NL | BS | POC | CAN | EM | UBS | CU1 | IFS | IGS | IRS | IUS/ ITB |
2x | DS | SOS | FS | WUS | BYP/ INP |
LF | ETB | ESC | SA | SFE | SM/ SW |
CSP | MFA | ENQ | ACK | BEL |
3x | SYN | IR | PP | TRN | NBS | EOT | SBS | IT | RFF | CU3 | DC4 | NAK | SUB | |||
4x | SP | ¢ | . | < | ( | + | | | |||||||||
5x | & | ! | $ | * | ) | ; | ¬ | |||||||||
6x | - | / | , | % | _ | > | ? | |||||||||
7x | : | # | @ | ' | = | " | ||||||||||
8x | a | b | c | d | e | f | g | h | i | |||||||
9x | j | k | l | m | n | o | p | q | r | |||||||
Ax | s | t | u | v | w | x | y | z | ||||||||
Bx | ||||||||||||||||
Cx | A | B | C | D | E | F | G | H | I | |||||||
Dx | J | K | L | M | N | O | P | Q | R | |||||||
Ex | S | T | U | V | W | X | Y | Z | ||||||||
Fx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | EO |
在打孔卡上的一行1964年EBCDIC字元 |
---|
__________________________________________________________________ / 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ#,$.-@%*<-/+_)¢|&>:;¬'?"=!(,. 12| ▊▊▊▊▊▊▊▊▊ ▊ ▊ ▊ ▊▊▊ ▊ ▊ 11| ▊▊▊▊▊▊▊▊▊ ▊ ▊ ▊ ▊ ▊ ▊▊ ▊ 0| ▊ ▊▊▊▊▊▊▊▊ ▊ ▊ ▊ ▊ ▊ ▊ ▊ 1| ▊ ▊ ▊ ▊ 2| ▊ ▊ ▊ ▊ ▊ ▊ ▊ 3| ▊ ▊ ▊ ▊ ▊▊▊▊ ▊▊ 4| ▊ ▊ ▊ ▊ ▊▊▊▊ 5| ▊ ▊ ▊ ▊ ▊▊ ▊ ▊ 6| ▊ ▊ ▊ ▊ ▊ ▊ ▊ ▊ 7| ▊ ▊ ▊ ▊ ▊ ▊ ▊▊ 8| ▊ ▊ ▊ ▊ ▊▊▊▊ ▊▊▊▊ ▊▊▊▊▊ ▊▊▊▊▊▊▊▊▊▊▊▊ 9| ▊ ▊ ▊ ▊ |___________________________________________________________________ |
在打孔卡上順序列出的1964年EBCDIC的62個字元 |
_______________________________________________________________ / &-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ/:#@'="¢.<(+|!$*);¬,%_>? 12| ▊ ▊▊▊▊▊▊▊▊▊ ▊▊▊▊▊▊ 11| ▊ ▊▊▊▊▊▊▊▊▊ ▊▊▊▊▊▊ 0| ▊ ▊▊▊▊▊▊▊▊▊ ▊▊▊▊▊ 1| ▊ ▊ ▊ ▊ 2| ▊ ▊ ▊ ▊ ▊ ▊ ▊ 3| ▊ ▊ ▊ ▊ ▊ ▊ ▊ ▊ 4| ▊ ▊ ▊ ▊ ▊ ▊ ▊ ▊ 5| ▊ ▊ ▊ ▊ ▊ ▊ ▊ ▊ 6| ▊ ▊ ▊ ▊ ▊ ▊ ▊ ▊ 7| ▊ ▊ ▊ ▊ ▊ ▊ ▊ ▊ 8| ▊ ▊ ▊ ▊ ▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊ 9| ▊ ▊ ▊ ▊ |________________________________________________________________ |
_______________________________________________________________ / 123456789:#@'="0/STUVWXYZ,%_>?-JKLMNOPQR!$*);¬&ABCDEFGHI¢.<(+| 12| ▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊ 11| ▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊ 0| ▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊ 1| ▊ ▊ ▊ ▊ 2| ▊ ▊ ▊ ▊ ▊ ▊ ▊ 3| ▊ ▊ ▊ ▊ ▊ ▊ ▊ ▊ 4| ▊ ▊ ▊ ▊ ▊ ▊ ▊ ▊ 5| ▊ ▊ ▊ ▊ ▊ ▊ ▊ ▊ 6| ▊ ▊ ▊ ▊ ▊ ▊ ▊ ▊ 7| ▊ ▊ ▊ ▊ ▊ ▊ ▊ ▊ 8| ▊ ▊▊▊▊▊▊ ▊ ▊▊▊▊▊ ▊ ▊▊▊▊▊▊ ▊ ▊▊▊▊▊▊ 9| ▊ ▊ ▊ ▊ |________________________________________________________________ |
在處理ASCII可列印字元之時,將其[
佔位¢
,其]
佔位!
,其!
佔位(表示邏輯或的)|
,而其^
佔位(表示邏輯非的)¬
,並補充上所缺少的屬於ASCII的6個標點符號,成為(不計空白字元在內的)94個可列印字元的編碼表:
EBCDIC | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0x | NUL | SOH | STX | ETX | SEL | HT | RNL | DEL | GE | SPS | RPT | VT | FF | CR | SO | SI |
1x | DLE | DC1 | DC2 | DC3 | RES/ ENP |
NL | BS | POC | CAN | EM | UBS | CU1 | IFS | IGS | IRS | IUS/ ITB |
2x | DS | SOS | FS | WUS | BYP/ INP |
LF | ETB | ESC | SA | SFE | SM/ SW |
CSP | MFA | ENQ | ACK | BEL |
3x | SYN | IR | PP | TRN | NBS | EOT | SBS | IT | RFF | CU3 | DC4 | NAK | SUB | |||
4x | SP | [ | . | < | ( | + | ! | |||||||||
5x | & | ] | $ | * | ) | ; | ^ | |||||||||
6x | - | / | ¦ | , | % | _ | > | ? | ||||||||
7x | ` | : | # | @ | ' | = | " | |||||||||
8x | a | b | c | d | e | f | g | h | i | |||||||
9x | j | k | l | m | n | o | p | q | r | |||||||
Ax | ~ | s | t | u | v | w | x | y | z | |||||||
Bx | ||||||||||||||||
Cx | { | A | B | C | D | E | F | G | H | I | ||||||
Dx | } | J | K | L | M | N | O | P | Q | R | ||||||
Ex | \ | S | T | U | V | W | X | Y | Z | |||||||
Fx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | EO |
在後來頁碼版本的EBCDIC中,定義了「不變子集」58個字元,即在62個可列印字元子集基礎上再去掉4個被佔用了字元,並且計空白字元而不計$
在內,如下圖灰色底所示。然後於各版本的編碼表中,加入了其他字元,以符合各地用戶所需。
以下是其中兩個版本的EBCDIC編碼表:CP037(英語)及CP500(多語言#5)。CP037為ASCII的[
、]
和^
重新指定了位置不再佔用EBCDIC的¢
、!
和¬
,將其!
認同為原來EBCDIC的!
。CP500為被佔用的EBCDIC的¢
、|
和¬
重新指定了位置,將EBCDIC的!
認同為佔用了其位置的!
。
EBCDIC CP037 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
0x | NUL | SOH | STX | ETX | ST | HT | SSA | DEL | EPA | RI | SS2 | VT | FF | CR | SO | SI |
1x | DLE | DC1 | DC2 | DC3 | OSC | NEL | BS | ESA | CAN | EM | PU2 | SS3 | FS | GS | RS | US |
2x | PAD | HOP | BPH | NBH | IND | LF | ETB | ESC | HTS | HTJ | VTS | PLD | PLU | ENQ | ACK | BEL |
3x | DCS | PU1 | SYN | STS | CCH | MW | SPA | EOT | SOS | SGCI | SCI | CSI | DC4 | NAK | PM | SUB |
4x | SP | NBSP | â | ä | à | á | ã | å | ç | ñ | ¢ | . | < | ( | + | | |
5x | & | é | ê | ë | è | í | î | ï | ì | ß | ! | $ | * | ) | ; | ¬ |
6x | - | / | Â | Ä | À | Á | Ã | Å | Ç | Ñ | ¦ | , | % | _ | > | ? |
7x | ø | É | Ê | Ë | È | Í | Î | Ï | Ì | ` | : | # | @ | ' | = | " |
8x | Ø | a | b | c | d | e | f | g | h | i | « | » | ð | ý | þ | ± |
9x | ° | j | k | l | m | n | o | p | q | r | ª | º | æ | ¸ | Æ | ¤ |
Ax | µ | ~ | s | t | u | v | w | x | y | z | ¡ | ¿ | Ð | Ý | Þ | ® |
Bx | ^ | £ | ¥ | · | © | § | ¶ | ¼ | ½ | ¾ | [ | ] | ¯ | ¨ | ´ | × |
Cx | { | A | B | C | D | E | F | G | H | I | SHY | ô | ö | ò | ó | õ |
Dx | } | J | K | L | M | N | O | P | Q | R | ¹ | û | ü | ù | ú | ÿ |
Ex | \ | ÷ | S | T | U | V | W | X | Y | Z | ² | Ô | Ö | Ò | Ó | Õ |
Fx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ³ | Û | Ü | Ù | Ú | APC |
EBCDIC CP500 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
0x | NUL | SOH | STX | ETX | ST | HT | SSA | DEL | EPA | RI | SS2 | VT | FF | CR | SO | SI |
1x | DLE | DC1 | DC2 | DC3 | OSC | NEL | BS | ESA | CAN | EM | PU2 | SS3 | FS | GS | RS | US |
2x | PAD | HOP | BPH | NBH | IND | LF | ETB | ESC | HTS | HTJ | VTS | PLD | PLU | ENQ | ACK | BEL |
3x | DCS | PU1 | SYN | STS | CCH | MW | SPA | EOT | SOS | SGCI | SCI | CSI | DC4 | NAK | PM | SUB |
4x | SP | NBSP | â | ä | à | á | ã | å | ç | ñ | [ | . | < | ( | + | ! |
5x | & | é | ê | ë | è | í | î | ï | ì | ß | ] | $ | * | ) | ; | ^ |
6x | - | / | Â | Ä | À | Á | Ã | Å | Ç | Ñ | ¦ | , | % | _ | > | ? |
7x | ø | É | Ê | Ë | È | Í | Î | Ï | Ì | ` | : | # | @ | ' | = | " |
8x | Ø | a | b | c | d | e | f | g | h | i | « | » | ð | ý | þ | ± |
9x | ° | j | k | l | m | n | o | p | q | r | ª | º | æ | ¸ | Æ | ¤ |
Ax | µ | ~ | s | t | u | v | w | x | y | z | ¡ | ¿ | Ð | Ý | Þ | ® |
Bx | ¢ | £ | ¥ | · | © | § | ¶ | ¼ | ½ | ¾ | ¬ | | | ¯ | ¨ | ´ | × |
Cx | { | A | B | C | D | E | F | G | H | I | SHY | ô | ö | ò | ó | õ |
Dx | } | J | K | L | M | N | O | P | Q | R | ¹ | û | ü | ù | ú | ÿ |
Ex | \ | ÷ | S | T | U | V | W | X | Y | Z | ² | Ô | Ö | Ò | Ó | Õ |
Fx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ³ | Û | Ü | Ù | Ú | APC |
於編碼表中,0x00 - 0x3F及0xFF為控制字元,0x40為空格,0x41為不換行空格(no-break space),0xCA為選擇性連字號(soft hyphen)。
參見
外部連結
- F.0 Appendix F. Code Pages(頁面存檔備份,存於互聯網檔案館) from AS/400 International Application Development V4R2(頁面存檔備份,存於互聯網檔案館)
- ICU Character Mapping Tables 包含EBCDIC與Unicode的對應表
- LegacyJ- EBCDIC Table
- Computer Character Set Table
- Unicode Technical Report #16: UTF-EBCDIC(頁面存檔備份,存於互聯網檔案館)I
- ^ Mackenzie, Charles E. Coded Character Sets, History and Development (PDF). The Systems Programming Series 1. Addison-Wesley Publishing Company, Inc. 1980 [2022-04-06]. ISBN 0-201-14460-3. LCCN 77-90165.