CCSID=1399 が IBM の推薦もあって使用しているユーザーもたまに見かけるようになってきた。
CCSID=1399 とは、従来の CCSID=5026
や 5035
と、どのように違うのであろうか ?
また CCSID=1399 を使用しなくても、NEC選定文字として、@, A, ... 等のPC独自の文字を
System i でも使用することはできないのだろうか ?
ここでは CCSID=1399 への対応と NEC選定文字について解説すると同時に簡単な対応方法を
説明する。
CCSID=1399 を 5250エミュレータで使用するには、下記のように ホスト・コード・ページを
1399 に指定するだけでよい。
また、CCSID=1399 のデータ・ベースを作成するには、下記のように CCSID=1399 である
ソース・ファイルを作成して、それに基づいて CRTPF
によって作成することができるる
ところで CCSID=1399 とは、どのようなコード体系であるのだろうか ?
また、CCSID=1399 には、どのように対応すればよいのだろうか ?
簡単に言っていまえば、
ASCII漢字コードの1桁めが 0x87
で始まる漢字、
および 1桁目が 0xed 〜 0xee問題となるのは EBCDIC/ASCII 変換である。
NEC選定文字を変換するための簡単なテクニックを紹介しよう。
EBCDIC から ASCII への変換
CALL PGM(QDCXLATE) PARM(&BUFLEN &SNDDTA 'QASCII + ' 'QSYS ' &OUTBUF &MAXOTL &OUTLEN + '*J90X5035' 'N' '*EA ')
ASCII から EBCDIC への変換
CALL PGM(QDCXLATE) PARM(&BUFLEN &RCVDTA + 'QEBCDIC ' 'QSYS ' &OUTBUF &MAXOTL + &OUTLEN '*J90X5035' 'Y' '*AE ')
変換テーブルは各々の事情によって何を使うのかは別として 日本語指示として
「*JPN
」と指定することろを「*J90X5035
」を指示することによって
NEC選定文字を変換することができる。
逆に言えば、今の時代では *JPNを指定するのではなく *J90X5035 を指定するように
しておけば、EBCDIC/ASCII 変換がかなりの対応ができるということになる。
API: QDCXLATE
をよく使用する開発者であっても つい *J90X5035 があることは
知らない人も多いかも知れないので紹介した。