EBCDIC

From Wikipedia, the free encyclopedia

EBCDIC (英語: Extended Binary Coded Decimal Interchange Code[1]、エビシディック、拡張二進化十進コード[2]) はIBMにより定義された8ビットコード化文字セットである[3]ASCII普及前の1963年に、BCD(Binary-coded decimal、二進化十進コード)を拡張する形で作られ、主にIBM系のメインフレームオフィスコンピュータなどで使用されている[4][5][6]

IBMのCDRACharacter Data Representation Architecture; 文字データ表現体系)では、EBCDICは符号化方法(Encoding Scheme)の1つと位置づけられている[7]。各国語などの文字集合であるコードページを、EBCDICなどの符号化方式で符号化するが、EBCDICの符号化にもシングルバイトダブルバイトマルチバイトの構造がある。これらの組み合わせがCCSIDとして定義されており、例えば日本用のEBCDICのCCSIDは、ひらがな漢字を含まない組み合わせも含めると、10以上定義されている[8]

この他、IBM以外の互換メーカーなどのEBCDICをベースとした各種の文字コードまたは符号化方法も、EBCDICまたはEBCDIC系と呼ばれる場合がある。

歴史

EBCDICはSystem/360と同時に発表された。

IBMはASCII標準化委員会の主提案社であったが[9]、BCDをベースとしたのは、当時のデータの大多数はパンチカードの形でBCDの形式で保管されていたため、蓄積データの互換性を優先したためである。

System/360がベストセラーとなると、そのクローンであるRCA Spectra、ICL System 4、富士通 FACOM日立製作所 HITACなどもEBCDICを採用した。

EBCDICを標準の文字コードとするオペレーティングシステムには、IBMメインフレーム用のz/OSz/VSEz/VMや、IBMミッドレンジコンピュータ用のOS/400IBM iなどがある。ただし、IBMメインフレーム上でもz/OS上のUSS(UNIX互換環境)や、Linux、あるいはAS/400Power Systems i Edition上で稼動するLinuxやAIXなどは、ASCIIである。EBCDICと、ASCII、シフトJISUnicodeなどの主要な文字コード間は、オペレーティングシステム、ミドルウェア、各種ツール、アプリケーション・ソフトウェアなどの機能を使用したコード変換が行われている。

IBM以外ではBS2000HP MPEUnisys MCPなどもEBCDICをベースにしている。日立製作所はEBCDICをベースとした自社の文字コードをEBCDIKと呼んでいる[10]。上述のようにIBMの日本用EBCDICの組み合わせ(CCSID)は10以上定義されているが、他メーカーでは細部が異なるため、いわゆるEBCDIC系統では多数の文字コードが存在している。

詳細

CCSID、コードページとの関係

上述のように、IBM CDRA上ではEBCDICは「文字コード」ではなく「符号化方法」の1つであり、具体的なコード配置(各文字と符号位置の配置)はコードページによっても異なる。符号化方法にEBCDIC (1100)を使用したコードページとCCSIDの例には以下がある。なお CCSID 5026(日本語カタカナ拡張)にはコードページが2つあり(混合CCSID)、切り替えて使用する。

さらに見る CCSID, コードページ(CPGID) ...
EBCDICを使用したCCSID、コードページの例
CCSIDコードページ(CPGID)符号化方法(ES)コードページ名備考
37[11]371100USA/Canada - CECPUSA英語(EBCDIC)
500[12]5001100International #5多国語英語(EBCDIC)
5026/930/1390[13]2901100Japanese (Katakana) ExtendedSBCS日本語カナ(EBCDIC)
3001100Japan (Kanji) - Host, DBCSDBCS日本語(EBCDIC)
5035/939/1399[14]010271100Japanese (Latin) ExtendedSBCS日本語英小文字カナ(EBCDIC)
3001100Japan (Kanji) - Host, DBCSDBCS日本語(EBCDIC)
閉じる

コード配置

  • EBCDICを使用した全てのコードページで、共通の符号位置を持つ文字 (例えば、'SP'(ブランク) = X'40'は共通だが、以下に記載の無い英小文字の有無や位置はコードページにより異なる)
さらに見る A0, B0 ...
 00102030405060708090A0B0C0D0E0F0
0     sp&-        0
1       /     AJ 1
2             BKS2
3             CLT3
4             DMU4
5             ENV5
6             FOW6
7             GPX7
8             HQY8
9             IRZ9
A        :        
B     . ,#        
C     <*%@        
D     ()_'        
E     +;>=        
F       ?"        
閉じる
  • カナ拡張されたEBCDICコードの例(IBMによるカナ拡張の一例;コードページ:298の場合)
さらに見る A0, B0 ...
 00102030405060708090A0B0C0D0E0F0
0     sp&-{}¥0
1      /ajAJ 1
2     bksBKS2
3     cltCLT3
4     dmuDMU4
5     envENV5
6     fowFOW6
7     gpxGPX7
8     hqy HQY8
9     irz IRZ9
A     ¢!¦:     
B     .$,#     
C     <*%@     
D     ()_'     
E     +;>=     
F     ?"     
閉じる

制御文字コードの配置

EBCDICにもASCIIと同様、通信処理の制御や周辺機器の制御などの目的に用いる文字コードが存在する。割り当て範囲は、16進数表現の00hから3Fhの間と0FFh。

  • IBMによるカナ拡張の一例(コードページ:298)と組み合わせた場合のコード表
さらに見る A0, B0 ...
 00102030405060708090A0B0C0D0E0F0
0 NULDLEDS(予約)sp&-{}¥0
1 SOHDC1SOS(予約) /ajAJ 1
2 STXDC2FSSYNbksBKS2
3 ETXDC3WUSIRcltCLT3
4 SELRES/ENPBYP/INPPPdmuDMU4
5 HTNLLFTRNenvENV5
6 RNLBSETBNBSfowFOW6
7 DELPOCESCEOTgpxGPX7
8 GECANSASBShqy HQY8
9 SPSEMSFEITirz IRZ9
A RPTUBSSM/SWRFF¢!¦:     
B VTCU1CSPCU3.$,#     
C FFIFSMFADC4<*%@     
D CRIGSENQNAK()_'     
E SO/LS1IRSACK(予約)+;>=     
F SI/LS0IUS/ITBBELSUB?"    EO
閉じる

ASCIIと共通の機能名称を持つ制御文字コードがある反面、プリンタ等の基本的な改行制御に関わる制御文字コードの個数に差異があるといった違いもある。

  • EBCDIC:CR=Carriage Return、NL=New Line、LF=Line Feed、FF=Form Feed(計4種類)
  • ASCII:CR=Carriage Return、LF=Line Feed、FF=Form Feed(計3種類)

脚注

参考文献

外部リンク

Related Articles

Wikiwand AI