日本語をコンピュータ上で表現するために、日立、富士通、IBMなどが定義したバリアントを含む、互換性のない複数の拡張二進化十進数交換コード(EBCDIC )バージョンが使用されてきました。一部は可変長エンコーディングであり、シングルバイトモードとダブルバイトモードを切り替えるためにロックシフトコードを使用しています。 [ 1 ]他のEBCDICロケールとは異なり、小文字の基本ラテン文字は通常の位置に保持されないことがよくあります。[ 2 ]
IBMがEBCDICで使用した2バイト日本語コードに含まれる文字で、 JIS X 0208の初版には含まれていない文字は、 IBMコードページ932(「DBCS-PC」)やWindowsコードページ932などのEBCDIC以外のエンコーディングに含まれるベンダー拡張機能にも影響を与えた。[ 3 ]
JIS X 0201 ( Shift JISに組み込まれている)と同様に、日本語のEBCDICエンコーディングには、多くの場合、1バイトのカタカナのセットが含まれています。日本語ロケールでは、さまざまなベンダーによって、1バイトのEBCDICコードのさまざまなバリアントが使用されています。また、特定のベンダーは、半角カタカナ用に推奨されるものとラテン文字用に推奨されるものの2つの異なる1バイトコードを定義することもあります。特定のベンダーがカタカナに使用するために推奨するEBCDICのバリアントは、 Extended Binary-Coded Decimal Interchange Kana codeの略であるEBCDIKと呼ばれることがあります。[ 1 ]
半角カナを含むコードページは、通常すべての EBCDIC コードページで同じようにエンコードされる文字セットを指定する IBM の EBCDIC 不変文字セットの例外です。特に、不変セットの基本ラテン文字の小文字に使用されるコードポイントにカタカナ文字が含まれる場合があります。 [ 2 ]これらの場所にカタカナ文字が含まれる場合の小文字のエンコード、および小文字が通常の場所に保持されている場合のカタカナ文字のエンコードは、以下に示すようにベンダーによって異なる場合があります。
Microsoft Windows は、IBM のバリアントのコード ページ番号よりも 20000 大きいコード ページ番号を持つ 2 つの日本語シングル バイト EBCDIC バリアントを実装しており、コード ページ 20290 (文書ではIBM290「IBM EBCDIC Japanese Katakana Extended」として記載) [ 4 ]と 21027 (「Extended/Ext Alpha Lowercase」) です。Windows で実装されているコード ページ 21027 は、いくつかの文字とカナの双方向マッピングが欠けている不完全な実装であり[ 5 ] 、現在非推奨となっています[ 4 ] 。
IBMのコードページは後に更新され、 0xE1にユーロ記号が追加され、元のCPGID番号はそのままに、新しいCCSID番号が割り当てられました。そのため、CCSID 290はコードページ290の元のバージョンを指し、ユーロ記号付きのコードページ290のバージョンはCCSID 8482としても知られています。[ 6 ]同様に、CCSID 1027はコードページ1027の元のバージョンを指し、ユーロ記号付きのCPGID 1027のバージョンにはCCSID 5123が割り当てられています。[ 7 ]
IBMの2バイト日本語DBCS-Hostコードページ(CPGID 300、CCSID 300または16684)のバージョンと並んで、2バイトコンポーネントとしてIBMコードページ290がマルチバイトコードページIBM-930 [ 8 ] [ 9 ]および(ユーロ更新CCSID 8482として)更新バージョンIBM-1390 [ 10 ] [ 11 ]のシングルバイトコンポーネントとして使用されています。IBMコードページ1027は、マルチバイトコードページIBM-939 [ 12 ] [ 13 ]および(ユーロ更新CCSID 5123として)更新バージョンIBM-1399 [ 14 ] [ 15 ]のシングルバイトコンポーネントとして使用されています。
以下の表では、不変集合への適合は緑色で、不変集合との衝突は赤色で示されています。
日本語には EBCDIC で 3 つの 2 バイト文字コードが使用されています。[ 30 ] [ 31 ] [ 3 ] IBMの IBM コード ページ 300 (IBM Kanji または IBM Japanese DBCS-Host とも呼ばれる) 、[ 32 ]日立の KEIS 、[ 30 ]および富士通の JEF [ 16 ]これらは DBCS-Host エンコーディングであり、異なるシフト コードを使用して 1 バイト EBCDIC モードと 2 バイト モードを切り替えます。[ 1 ] 0x41から 0xFE (EBCDIC でグラフィック文字に使用されるコード) は、190×190 グリッドの文字を表すためにペアで使用されます。コード 0x40 ( EBCDIC のスペース) は、表意文字スペースとして 2 倍されて使用されますが、他の 2 バイト コードの一部としては使用されません。[ 1 ] [ 32 ]
IBM 版 DBCS-Host コードのコードでは、コードは0x0Fシングルバイト モードに切り替わり、コードは0x0Eダブルバイト モードに切り替わります。[ 1 ] [ 8 ] [ 12 ] [ 10 ] [ 14 ]他のCJK言語用の IBM ダブルバイト EBCDIC コードと共通しています。 [ 1 ]例えば、韓国語用のJohabの EBCDIC バージョンです。[ 33 ] KEIS や JEF とは対照的に、IBM コード ページ 300 のレイアウトはJIS X 0208とは無関係であり、両者間の変換はテーブルを介して行う必要があります。[ 30 ]ただし、その文字レパートリーは JIS X 0208 の連続的な改訂に合わせて最新の状態に保たれており、JIS X 0208 のレパートリーのスーパーセットであり続けています。[ 3 ]先頭バイト 0x41 ~ 0x44 は漢字以外の文字に使用され、先頭バイト 0x45 ~ 0x68 は漢字に使用され、先頭バイト 0x69 ~ 0x89 は UDC (ユーザー定義文字) に使用されます。[ 32 ]
IBMの日本語DBCS-Hostコードの存在はEBCDICシステムを超えて影響を与えた。IBMはShift JIS (純粋な2バイトコードページ301で定義され、可変幅コードページ932およびコードページ942で使用される「DBCS-PC」)およびEUC-JPのバリアントも定義しており、これらはIBMコードページ300の全レパートリーをエンコードしている。これには、元々JIS X 0208に含まれていたものに加えて、28の非漢字と360の漢字が含まれる(ただし、非漢字である∵と記号¬は1983年にJIS X 0208に追加された)。これらは「IBM選択」文字と呼ばれ、例えばWindowsコードページ932の拡張機能として含まれている。[ 3 ]
IBM-300コードページの新しい改訂版では、先頭バイト0xB8~0xD5を持つ漢字と、先頭バイト0xD6~0xE9を持つ非漢字が追加されています。[ 32 ]この改訂では、 JIS X 0213のセットが更新され、ユーロ記号が追加され、CPGID 300 はそのままに、新しい CCSID 16684 が割り当てられました。[ 34 ]コード ページ IBM-930 (コード ページ 290 をシングル バイト セットとして使用)、[ 8 ] IBM-931 (コード ページ 37 をシングル バイト セットとして使用)、および IBM-939 (コード ページ 1027 をシングル バイト セットとして使用) [ 12 ]にはこれらの追加は含まれていませんが、IBM-1390 (コード ページ 290 のユーロ記号バージョン / CCSID 8482 を使用) [ 10 ]および IBM-1399 (コード ページ 1027 のユーロ記号バージョン / CCSID 5123 を使用) [ 14 ]にはこれらの追加が含まれています。
日立KEIS [ 30 ] (漢字処理拡張情報システム) では、シーケンスが0x0A 0x41シングルバイトモードに切り替わり、シーケンスが0x0A 0x42ダブルバイトモードに切り替わります。[ a ] JIS X 0208 文字は、 EUC-JPでエンコードするのと同じバイトシーケンスを使用してエンコードされます。つまり、両方のバイトが 0xA1 から 0xFE までです。これにより、表意文字空間のエンコードが重複します。DBCS-Host コード構造による 0x4040 と、EUC-JP と同じ 0xA1A1 です。ただし、先頭バイト範囲は 0x59 まで拡張され、そのうち先頭バイト 0x81–A0 はユーザー定義文字に指定され、[ 1 ]残りは漢字と非漢字の両方を含む企業定義文字に使用されます。[ 3 ]
富士通 JEF [ 16 ] (日本語処理拡張機能) では、0x29シングルバイトモードに切り替わり、0x28ダブルバイトモードに切り替わります。KEIS と同様に、JIS X 0208 コードは EUC-JP と同じように表現されます。[ 1 ] KEIS と異なり、この JEF ゾーンで使用される JIS X 0208 版は、オリジナルの JIS C 6226:1978 です。[ 30 ] [ 16 ]先頭バイト範囲は 0x41 まで拡張され、0x80–A0 はユーザー定義用に指定されています。先頭バイト 0x41–7F は、クテンの目的で行番号 101 から 163 に割り当てられますが、行 162 (先頭バイト 0x7E) は使用されません。[ 1 ] [ 3 ]行 101 から 148 は拡張漢字に使用され、行 149 から 163 は拡張非漢字に使用されます。[ 3 ]