CL

47. NEC 選定漢字を変換するには ? – CCSID=1399への対応

CCSID=1399 が IBM の推薦もあって使用しているユーザーもたまに見かけるようになってきた。

CCSID=1399 とは、従来の CCSID=50265035 と、どのように違うのであろうか ?

また 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 があることは

知らない人も多いかも知れないので紹介した。