EBCDIC(英語:Extended Binary Coded Decimal Interchange Code,擴增二進式十進交換碼),為IBM於1963年-1964年間推出的字元編碼表,根據早期打孔機式的BCDIC英語BCD (character encoding)即一種二進化十進數(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)。

參見

外部連結

  1. ^ 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.