付録B.2 文字コードの違い

メインフレームとPCでは使用する文字コードが異なります。PCはシフトJISを使用していますが,メインフレームでは2バイトコードとしてKEIS'83または,KEIS'78,1バイトコードとしてEBCDIKまたは,EBCDICを使用しています。

文字コードはXMAP3が変換しますが,2バイトコードとしてKEIS'83,1バイトコードとしてEBCDIKを前提としています。また,EBCDIKには英小文字はありませんが,「付録B.2(1)(a) EBCDIKからシフトJISへの変換」,および「付録B.2(1)(b) シフトJISからEBCDIKへの変換」で示すように,EBCDIKの空き領域を英小文字として使用しています。

EBCDICを使用して英小文字を使用する場合,「付録B.2(1)(a) EBCDIKからシフトJISへの変換」,および「付録B.2(1)(b) シフトJISからEBCDIKへの変換」で示すように,EBCDICの英小文字とコードが合わず,表示・印刷すると文字化けし,画面入力した英小文字がメインフレームで正しく認識できません。

したがって,英小文字を使用する場合は,出力論理マップや入力論理マップのデータを「付録B.2(1)(a) EBCDIKからシフトJISへの変換」,および「付録B.2(1)(b) シフトJISからEBCDIKへの変換」に示す範囲で使用してください。

GUI画面のフィールドボックスで,改行入力属性を指定したフィールドを使用する場合,「付録B.2(1)(e) 改行を操作するためのメインフレームコード」で示すように,改行コードは(15)16を使用します。

KEIS'78を使用してKEIS'83とコードの異なる文字を使用している場合,表示・印刷すると文字化けし,画面入力した文字がメインフレームで正しく認識できません。

したがって,表B-3に示す,コードの異なる文字を使用する場合は,出力論理マップ,入力論理マップのデータKEIS'83の該当コードとして使用してください。

<この項の構成>
(1) 1バイト文字の変換
(2) 漢字コードの違い
(3) けい線コードの違い
(4) ベンダ固有文字についての注意事項

(1) 1バイト文字の変換

メインフレームとPCに処理を分散する場合,シフトJISとEBCDIKとの文字コードの違いはXMAP3が変換します。文字コード変換の表を次に示します。

(a) EBCDIKからシフトJISへの変換

[図データ]

(例)
EBCDIKコードでの「A」(コードは(C1)16)は,シフトJISでは(41)16に変換されます。
(b) シフトJISからEBCDIKへの変換

[図データ]

(例)
シフトJISコードでの「1」(コードは(31)16)は,EBCDIKでは(F1)16に変換されます。
(c) EBCDICの英小文字からシフトJISへの変換

EBCDICの英小文字を指定した場合,表示・印刷時に出力される文字を次の表に示します。

[図データ]

(例)
EBCDICコードでの「a」(コードは(81)16)は,シフトJISでは半角の「ア」(コードは(B1)16)に変換されます。
(d) 英小文字を操作するためのメインフレームコード

表示・印刷時に英小文字を操作するためのメインフレームコードを以下の表に示します。

出力文字シフトJISコード 出力文字シフトJISコード 出力文字シフトJISコード 出力文字シフトJISコード
a(61)(59) h(68)(68) o(6F)(75) v(76)(9C)
b(62)(62) i(69)(69) p(70)(76) w(77)(A0)
c(63)(63) j(6A)(70) q(71)(77) x(78)(AB)
d(64)(64) k(6B)(71) r(72)(78) y(79)(B0)
e(65)(65) l(6C)(72) s(73)(80) z(7A)(B1)
f(66)(66) m(6D)(73) t(74)(8B) 
g(67)(67) n(6E)(74) u(75)(9B)
(例)
シフトJISでの「a」(コードは(61)16)を操作するには,EBCDIC/EBCDIKコードの(59)16を使用します。
(e) 改行を操作するためのメインフレームコード

GUI画面のフィールドボックスに定義した,改行入力属性を指定したフィールドで,改行を操作するためのメインフレームコードは(15)16です。

メインフレームでは,2バイトコード中の改行コード((15)16)に,シフトコード((0A41)16,(0A42)16)を必要としませんが,XMAP3では画面入力時,改行コード((15)16)の後ろが2バイトコードの場合,改行コード((15)16)と2バイトコードの間にシフトコード((0A42)16)を付加して入力論理マップに格納します。これによって,改行コード((15)16)の後半を抜き取った場合でも2バイトシフトコードとしてそのまま扱うことができます。

なお,画面出力時の出力論理マップには,2バイトコード中の改行コード((15)16)にシフトコードを付加する必要はありません。

(2) 漢字コードの違い

KEIS'83とKEIS'78の漢字コードの違いを次の表に示します。

表B-3 文字コードの対応

文字KEIS'83KEIS'78 文字KEIS'83KEIS'78
F2CDB0B3 B0B3F2CD
F2F4B2A9 B2A9F2F4
E9DAB3C2 B3C2E9DA
D9F8B3C9 B3C9D9F8
E3DEB3F6 B3F6E3DE
DEF5B4C3 B4C3DEF5
EBDDB4D2 B4D2EBDD
F0F4B7DB B7DBF0F4
E2E8B9DC B9DCE2E8
E9A2BCC9 BCC9E9A2
F0D7BFD9 BFD9F0D7
ECCDC1A8 C1A8ECCD
D4E4C4DB C4DBD4E4
E2EAC5D7 C5D7E2EA
DBEDC5EE C5EEDBED
DEB9C5F3 C5F3DEB9
EDEEC6F6 C6F6EDEE
EAA4C7E8 C7E8EAA4
DBD8C9B0 C9B0DBD8
D0D6CBF9 CBF9D0D6
E4C6CFB6 CFB6E4C6
E9AECCF9 CCF9E9AE
F4A15CC3 F4A261FC
F4A36BA2 F4A465A7
A2BEA2BF A2BFA2BE

(3) けい線コードの違い

KEIS'83とKEIS'78のけい線コードの違いを次の表に示します。

表B-4 けい線コードの対応

KEIS'83KEIS'78 KEIS'83KEIS'78
けい線コードコードけい線 けい線コードコードけい線
A8A3AFA1 A8A8AFB3
A8AEAFA2 A8B3AFB4
A8AEAFA31※1 A8B3AFB51※1
A8A4AFA4 A8AAAFB6
A8AFAFA5 A8B5AFB7
A8AFAFA61※1 A8B5AFB81※1
A8A6AFA7 A8ABAFB9
A8B1AFA8 A8B6AFBA
A8B1AFA91※1 A8B6AFBB1※1
A8A5AFAA A8A1AFBC
A8B0AFAB A8ACAFBD
A8B0AFAC1※1 A8ACAFBE1※1
A8A7AFAD A8A2AFBF
A8B2AFAE A8ADAFC0
A8B2AFAF1※1 A8ADAFC11※1
A8A9AFB0 A8ADAFC21※1※2
A8B4AFB1 A8ADAFC31※1※3
A8B4AFB21※1 A8ADAFC41※1※4
注※1
KEIS'83を使用している場合でも,オンデマンド外字処理を使用すれば,表示および印刷ができます。
注※2
細い縦の破線「[図データ]」です。
注※3
縦の破線「[図データ]」です。
注※4
太い縦の破線「[図データ]」です。

(4) ベンダ固有文字についての注意事項

XMAP3では,XMAP3外字機能,コード変換SDK,コード変換ランタイム,日立コード変換 - Server Runtime,または日立コード変換 - Client Runtimeと併用した場合,PCで使用できるシフトJISのベンダ固有文字が変わりますので,注意してください。

なお,ベンダ固有文字はPC環境に依存するため使用できなくなることがありますので,ベンダ固有文字は極力使用しないことをお勧めします。この場合,ベンダ固有文字はWindowsで定義できるシフトJIS外字1に置き換える,または日立コード変換※2で文字コードを変換して使用してください。

注※1
Windowsで定義できるシフトJISの外字領域は,(F040)16~(F9FC)16です。ただし,コードの第2バイトは,(xx40)16~(xx7E)16,および(xx80)16~(xxFC)16の範囲です。
注※2
日立コード変換 - Development Kitのバージョンによっては,ベンダ固有文字を利用できます。詳細は,マニュアル「日立コード変換ユーザーズガイド」を参照してください。
日立コード変換 - Development Kitでベンダ固有文字をカスタマイズする場合,必ずユーザがカスタマイズしたユーザマッピングファイルを利用してください。日立コード変換 - Development Kitに含まれるGJISKEI.TBL(シフトJISとKEISのユーザマッピングファイル)の初期値には,シフトJISのベンダ固有文字とKEIS拡張文字セット3のマッピング情報は定義されていません。

ただし,XMAP3帳票環境セットアップで,印刷モードにPDLスルー,日立ESC/Pを選択している場合,XMAP3での帳票印刷時,ベンダ固有文字はプリンタ内蔵フォントに依存します。

なお,ベンダ固有文字は,コード変換SDK,コード変換ランタイム,日立コード変換 - Server Runtime,または日立コード変換 - Client Runtimeを併用した環境によって使用できる範囲が異なります。

表B-5 ベンダ固有文字の利用について

ベンダ固有文字の
コードの範囲※1
コード変換製品なしコード変換製品あり
XMAP3外字機能
なし
XMAP3外字機能
あり
Windows特殊文字
(8740)16~(879C)16
XMAP3内部で変換する。※2
<コード変換>KEIS ⇔シフトJIS
XMAP3がコード変換を利用して変換する。※3
<コード変換>KEIS ⇔シフトJIS
XMAP3がコード変換を利用して変換する。※3※4
<コード変換>KEIS ⇔ Unicode
NEC選定IBM拡張文字(ED40)16~(EEFC)16
IBM選択文字(FA40)16~(FC4B)16
(凡例)
コード変換製品なし:コード変換製品を併用しない場合。
コード変換製品あり:コード変換SDK,コード変換ランタイム,日立コード変換 - Server Runtime,または日立コード変換 - Client Runtimeを併用した場合。
注※1
コードの範囲はシフトJISコードの範囲を示します。なお,すべてのベンダ固有文字のコード範囲は次のとおりです。
・第1バイト:(81xx)16~(9Fxx)16,および(E0xx)16~(FCxx)16
・第2バイト:(xx40)16~(xx7E)16,および(xx80)16~(xxFC)16
注※2
PCの環境によって,変換した文字コードに異なる文字が割り当てられている場合があります。ベンダ固有文字は,外字領域に作成,登録して使用することをお勧めします。
注※3
コード変換SDKまたはコード変換ランタイムでは,NEC選定IBM拡張文字,およびIBM選択文字はサポートされていません。NEC選定IBM拡張文字およびIBM選択文字を使用する場合は,外字領域に作成,登録して使用ください。
日立コード変換 - Server Runtimeまたは日立コード変換 - Client Runtimeのバージョンによってはベンダ固有文字がサポートされています。この場合,ベンダ固有文字をKEISコードの内字領域または拡張文字セット3領域のどちらに割り当てるかを,日立コード変換のユーザマッピング機能で選択する必要があります。割り当てるKEISコードごとの注意事項を次に示します。
KEISの内字領域を使用する場合
NEC選定IBM拡張文字およびIBM選択文字は利用できません。
KEISの拡張文字セット3領域を使用する場合
この領域は初期状態では外字領域としてマッピングされています。
すでに外字として利用している場合には注意が必要です。
 
ベンダ固有文字をマッピングできる日立コード変換 - Server Runtimeまたは日立コード変換 - Client Runtimeのバージョン,および設定方法については,マニュアル「日立コード変換ユーザーズガイド」を参照してください。
注※4
PDFファイル出力では,コード変換製品のサポート範囲によってはIBM選択文字およびNEC選定IBM拡張文字は利用できません。PDFファイル出力時には,「表B-5 ベンダ固有文字の利用について」に示す文字コード変換に加えて「Unicode⇔シフトJIS」のコードを変換しますので,コード変換製品での「Unicode⇔シフトJIS」のコードマッピングのサポート範囲をご確認ください。