CL

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

CCSID=1399 が IBM の推薦もあって使用しているユーザーもたまに見かけるようになってきた。
CCSID=1399 とは、従来の CCSID=50265035 と、どのように違うのであろうか ?
また CCSID=1399 を使用しなくても、NEC選定文字として、@, A, ... 等の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上でよく使用する「@, A, ...」等の記号を表記する漢字である。

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 があることは
知らない人も多いかも知れないので紹介した。