CCSID=1399 が IBM の推薦もあって使用しているユーザーもたまに見かけるようになってきた。
CCSID=1399 とは、従来の CCSID=5026 や 5035 と、どのように違うのであろうか ?
また CCSID=1399 を使用しなくても、NEC選定文字として、①, ②, … 等のPC独自の文字を
System i でも使用することはできないのだろうか ?
ここでは CCSID=1399 への対応と NEC選定文字について解説すると同時に簡単な対応方法を
説明する。
CCSID=1399 を 5250エミュレータで使用するには、下記のように ホスト・コード・ページを
1399 に指定するだけでよい。
また、CCSID=1399 のデータ・ベースを作成するには、下記のように CCSID=1399 である
ソース・ファイルを作成して、それに基づいて CRTPF によって作成することができるる
ところで CCSID=1399 とは、どのようなコード体系であるのだろうか ?
また、CCSID=1399 には、どのように対応すればよいのだろうか ?
簡単に言っていまえば、
CCSID=1399とはCCSID=5035にNEC選定文字をプラスしたコード体系と考えてよい。
NEC選定文字とは、PC上でよく使用する「①, ②, …」等の記号を表記する漢字である。
ASCII漢字コードの1桁めが 0x87 で始まる漢字、
および 1桁目が 0xed ~ 0xee</span である漢字である。
問題となるのは 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 があることは
知らない人も多いかも知れないので紹介した。