EBCDIC (英語: Extended Binary Coded Decimal Interchange Code、エビシディック、拡張二進化十進コード[2]) はIBMにより定義された8ビットのコード化文字セットである[3]。ASCII普及前の1963年に、BCD(Binary-coded decimal、二進化十進コード)を拡張する形で作られ、主にIBM系のメインフレームやオフィスコンピュータなどで使用されている[4][5][6]。
IBMのCDRA(Character 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/OS、z/VSE、z/VMや、IBMミッドレンジコンピュータ用のOS/400、IBM iなどがある。ただし、IBMメインフレーム上でもz/OS上のUSS(UNIX互換環境)や、Linux、あるいはAS/400やPower Systems i Edition上で稼動するLinuxやAIXなどは、ASCIIである。EBCDICと、ASCII、シフトJIS、Unicodeなどの主要な文字コード間は、オペレーティングシステム、ミドルウェア、各種ツール、アプリケーション・ソフトウェアなどの機能を使用したコード変換が行われている。
IBM以外ではBS2000、HP MPE、Unisys MCPなどもEBCDICをベースにしている。日立製作所はEBCDICをベースとした自社の文字コードをEBCDIKと呼んでいる[10]。上述のようにIBMの日本用EBCDICの組み合わせ(CCSID)は10以上定義されているが、他メーカーでは細部が異なるため、いわゆるEBCDIC系統では多数の文字コードが存在している。
詳細
CCSID、コードページとの関係
上述のように、IBM CDRA上ではEBCDICは「文字コード」ではなく「符号化方法」の1つであり、具体的なコード配置(各文字と符号位置の配置)はコードページによっても異なる。符号化方法にEBCDIC (1100)を使用したコードページとCCSIDの例には以下がある。なお CCSID 5026(日本語カタカナ拡張)にはコードページが2つあり(混合CCSID)、切り替えて使用する。
EBCDICを使用したCCSID、コードページの例
CCSID |
コードページ(CPGID) |
符号化方法(ES) |
コードページ名 |
備考
|
37[11] |
37 |
1100 |
USA/Canada - CECP |
USA英語(EBCDIC)
|
500[12] |
500 |
1100 |
International #5 |
多国語英語(EBCDIC)
|
5026/930/1390[13] |
290 |
1100 |
Japanese (Katakana) Extended |
SBCS日本語カナ(EBCDIC)
|
300 |
1100 |
Japan (Kanji) - Host, DBCS |
DBCS日本語(EBCDIC)
|
5035/939/1399[14] |
01027 |
1100 |
Japanese (Latin) Extended |
SBCS日本語英小文字カナ(EBCDIC)
|
300 |
1100 |
Japan (Kanji) - Host, DBCS |
DBCS日本語(EBCDIC)
|
コード配置
- EBCDICを使用した全てのコードページで、共通の符号位置を持つ文字 (例えば、'SP'(ブランク) = X'40'は共通だが、以下に記載の無い英小文字の有無や位置はコードページにより異なる)
| 00 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | A0 | B0 | C0 | D0 | E0 | F0 |
0 | | | | | sp | & | - | | | | | | | | | 0 |
1 | | | | | | | / | | | | | | A | J | | 1 |
2 | | | | | | | | | | | | | B | K | S | 2 |
3 | | | | | | | | | | | | | C | L | T | 3 |
4 | | | | | | | | | | | | | D | M | U | 4 |
5 | | | | | | | | | | | | | E | N | V | 5 |
6 | | | | | | | | | | | | | F | O | W | 6 |
7 | | | | | | | | | | | | | G | P | X | 7 |
8 | | | | | | | | | | | | | H | Q | Y | 8 |
9 | | | | | | | | | | | | | I | R | Z | 9 |
A | | | | | | | | : | | | | | | | | |
B | | | | | . | | , | # | | | | | | | | |
C | | | | | < | * | % | @ | | | | | | | | |
D | | | | | ( | ) | _ | ' | | | | | | | | |
E | | | | | + | ; | > | = | | | | | | | | |
F | | | | | | | ? | " | | | | | | | | |
- カナ拡張されたEBCDICコードの例(IBMによるカナ拡張の一例;コードページ:298の場合)
| 00 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | A0 | B0 | C0 | D0 | E0 | F0 |
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 | | | | | │ | ¬ | ? | " | ノ | ミ | ラ | | | | | |
制御文字コードの配置
EBCDICにもASCIIと同様、通信処理の制御や周辺機器の制御などの目的に用いる文字コードが存在する。割り当て範囲は、16進数表現の00hから3Fhの間と0FFh。
- IBMによるカナ拡張の一例(コードページ:298)と組み合わせた場合のコード表
| 00 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | A0 | B0 | C0 | D0 | E0 | F0 |
0 | NUL | DLE | DS | (予約) | sp | & | - | コ | テ | ハ | ム | リ | { | } | ¥ | 0 |
1 | SOH | DC1 | SOS | (予約) | | ゥ | / | サ | a | j | ~ | ル | A | J | | 1 |
2 | STX | DC2 | FS | SYN | 。 | ェ | イ | シ | b | k | s | レ | B | K | S | 2 |
3 | ETX | DC3 | WUS | IR | 「 | ォ | ウ | ス | c | l | t | ロ | C | L | T | 3 |
4 | SEL | RES/ENP | BYP/INP | PP | 」 | ャ | エ | セ | d | m | u | ワ | D | M | U | 4 |
5 | HT | NL | LF | TRN | 、 | ュ | オ | ソ | e | n | v | ン | E | N | V | 5 |
6 | RNL | BS | ETB | NBS | ・ | ョ | カ | タ | f | o | w | ゛ | F | O | W | 6 |
7 | DEL | POC | ESC | EOT | ヲ | ッ | キ | チ | g | p | x | ゜ | G | P | X | 7 |
8 | GE | CAN | SA | SBS | ァ | ー | ク | ツ | h | q | y | | H | Q | Y | 8 |
9 | SPS | EM | SFE | IT | ィ | ア | ケ | ` | i | r | z | | I | R | Z | 9 |
A | RPT | UBS | SM/SW | RFF | ¢ | ! | ¦ | : | ト | ヒ | メ | | | | | |
B | VT | CU1 | CSP | CU3 | . | $ | , | # | ナ | フ | モ | | | | | |
C | FF | IFS | MFA | DC4 | < | * | % | @ | ニ | ヘ | ヤ | | | | | |
D | CR | IGS | ENQ | NAK | ( | ) | _ | ' | ヌ | ホ | ユ | | | | | |
E | SO/LS1 | IRS | ACK | (予約) | + | ; | > | = | ネ | マ | ヨ | | | | | |
F | SI/LS0 | IUS/ITB | BEL | SUB | │ | ¬ | ? | " | ノ | ミ | ラ | | | | | 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種類)
脚注
- ^ AS/400用語集
- ^ Extended Binary-Coded Decimal Interchange Code (EBCDIC) - IBM Terminology
- ^ What is EBCDIC? - wiseGEEK
- ^ The EBCDIC character set - Application programming on z/OS
- ^ EBCDIC - DB2 10 for z/OS
- ^ Appendix A. Encoding Schemes - IBM CDRA
- ^ Coded character set identifiers - IBM CDRA
- ^ They had 4 staff on the final 21-member ASA X3.2 sub-committee
- ^ 付録K.4 EBCDIC/EBCDIKのコード表 - 日立製作所
- ^ CCSID 37 - IBM CDRA
- ^ CCSID 500 - IBM CDRA
- ^ CCSID 5026 - IBM CDRA
- ^ CCSID 5035 - IBM CDRA
参考文献
外部リンク
|
---|
日本語用の 文字コード |
|
---|
日本語を含む 多言語文字集合 |
|
---|
日本語以外用の 文字集合 |
|
---|
ソフトウェア | |
---|
区分け | |
---|
概念 | |
---|
関連トピック | |
---|
カテゴリ |