画面・帳票サポートシステム XMAP3 メインフレーム連携ガイド

[目次][用語][索引][前へ][次へ]

付録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'83 KEIS'78   文字 KEIS'83 KEIS'78
F2CD B0B3   B0B3 F2CD
F2F4 B2A9   B2A9 F2F4
E9DA B3C2   B3C2 E9DA
D9F8 B3C9   B3C9 D9F8
E3DE B3F6   B3F6 E3DE
DEF5 B4C3   B4C3 DEF5
EBDD B4D2   B4D2 EBDD
F0F4 B7DB   B7DB F0F4
E2E8 B9DC   B9DC E2E8
E9A2 BCC9   BCC9 E9A2
F0D7 BFD9   BFD9 F0D7
ECCD C1A8   C1A8 ECCD
D4E4 C4DB   C4DB D4E4
E2EA C5D7   C5D7 E2EA
DBED C5EE   C5EE DBED
DEB9 C5F3   C5F3 DEB9
EDEE C6F6   C6F6 EDEE
EAA4 C7E8   C7E8 EAA4
DBD8 C9B0   C9B0 DBD8
D0D6 CBF9   CBF9 D0D6
E4C6 CFB6   CFB6 E4C6
E9AE CCF9   CCF9 E9AE
F4A1 5CC3   F4A2 61FC
F4A3 6BA2   F4A4 65A7
A2BE A2BF   A2BF A2BE

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

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

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

KEIS'83 KEIS'78   KEIS'83 KEIS'78
けい線 コード コード けい線   けい線 コード コード けい線
A8A3 AFA1   A8A8 AFB3
A8AE AFA2   A8B3 AFB4
A8AE AFA31 ※1   A8B3 AFB51 ※1
A8A4 AFA4   A8AA AFB6
A8AF AFA5   A8B5 AFB7
A8AF AFA61 ※1   A8B5 AFB81 ※1
A8A6 AFA7   A8AB AFB9
A8B1 AFA8   A8B6 AFBA
A8B1 AFA91 ※1   A8B6 AFBB1 ※1
A8A5 AFAA   A8A1 AFBC
A8B0 AFAB   A8AC AFBD
A8B0 AFAC1 ※1   A8AC AFBE1 ※1
A8A7 AFAD   A8A2 AFBF
A8B2 AFAE   A8AD AFC0
A8B2 AFAF1 ※1   A8AD AFC11 ※1
A8A9 AFB0   A8AD AFC21 ※1※2
A8B4 AFB1   A8AD AFC31 ※1※3
A8B4 AFB21 ※1   A8AD AFC41 ※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」のコードマッピングのサポート範囲をご確認ください。