メニューボタン
サポートチーム便り2025.01.15

IBM i のCPYFRMIMPF で環境依存文字が文字化けする

Question

外部からIBM i(AS/400)のIFSエリアにアップロードしたCSVファイルを、物理ファイルにコピーするため、CPYFRMIMPFを実行しています。

その際、コピー自体は正常完了するのに環境依存文字と思われるローマ数字や「㌔」「㈲」などが文字化けしてしまいました。

ジョブのCCSIDは1399、コピー先ファイルのCCSIDも1399にしているのですが、何が足りないのでしょうか。

Answer

ジョブのCCSIDやコピー先ファイルのCCSIDが1399にしているのであれば環境としては問題ないかと思います。

そうなると、次に疑うべきはコピー元のファイルになります。

コピー元のCSVファイルのCCSIDを確認してみてください。

おそらく、943(SJIS)ではなく、932(JIS)になっているのではないでしょうか。

  • 確認方法:
  • コマンド「WRKLNK」を実行
    例:WRKLNK OBJ('/CSVFILE/TESTCSV01.CSV')
  • 対象のファイルにオプション「8=属性の表示」を指定
  • 表示された属性を確認します。

ローマ数字や「㌔」「㈲」などの文字は、SJISにて追加された文字になりますのでCCSIDが932ですと正しく表示されない問題があります。

この状態でCPYFRMIMPFを行うと、コマンドはCCSID「932」から変換を掛けますので、対象の文字が文字化けした状態でコピーされる動きとなります。

一時的に設定を変更する場合は、先ほどのWRKLNKを実行後、「13=属性の変更」にてCCSIDの値を943に変更してみてください。

その後、CPYFRMIMPFを実行すれば、文字化けなくコピーされるかと思います。

私の記憶では、ネットサーバー経由でCSVファイルをIFSエリアにコピーするとこのような現象になるように思います。

その場合は、ネットサーバーの設定も見直す必要があるかもしれませんね。

by . かんぴょう木綿さん

あわせて読みたい記事

PAGE TOP