データベース

28. IFS ストリーム・ファイルを ユニコードに変換するには ?

CPYOBJ コマンドを使うと IFS の ASCII ファイルを UTF-8 に次のようにして変換することができる。

【 例 】
CPYOBJ OBJ('/temp/MYFILE.HTM') FROMCCSID(943) TOOBJ('/temp/NEW_MYFILE.HTM')
TOCCSID(1208)

逆に UTF-8 ( CCSID=1208 ) から Shift_JIS ASCII ( CCSID=943) に変換することができる。

CPYOBJ OBJ('/temp/MYFILE.HTM') FROMCCSID(1208) TOOBJ('/temp/NEW_MYFILE.HTM')
TOCCSID(943)
【 解説 】

Ajax でIFS へアップロードすると Shift_JIS であった ASCII ファイルも
Ajax によって UTF-8 に変換されてしまうので、アップロードされた System i 側では、
もう一度 Shift_JIS ASCII ( CCSID=943) に戻してやる必要がある。

eStudio での 「F5キー: 更新」による HTML 等の IFS へのアップロードは
以前はこのようにして CPYOBJ を使って Shift_JIS に戻して保管し直していた。
しかし、この方法は製品としてはスマートな方法ではない。
現在では UNI_CODE *SRVPGM というサービス・プログラムの fromUTF8 という関数によって
メモリ内のバッファーを Shift_JIS に直接、変換してから保存している。