3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM i (駆け出し)日記:CPYTOSTMFでの文字化けを回避する

Last updated at Posted at 2025-12-16

はじめに

ライブラリ上にあるソースをIFSにコピーするためCPYTOSTMFコマンドを使って、IBM Bobで確認したところ見事なほどに文字化けしました。のでその回避策メモ!

結論:STMFCCSID(1208)を指定する

image.png

CPYTOSTMF FROMMBR('/QSYS.LIB/DEMOLIB.LIB/QCBLSRC.FILE/IPH110CBL.MBR') TOSTMF('/home/SAKURA/qcblsrc/IPH110CBL.cbl') STMFOPT(*NONE) STMFCCSID(1208) 

このコマンドでいけるはず!
FROMメンバーとTOストリームファイルのパスは書き換えてください。

メモ ・ 注意

  • FROMMBRとTOSTMFはフルパス指定が必要です、
    私はACSの統合ファイルシステムから確認して、コピペしてます。
    他にいい方法あれば教えてください。

  • データベースのCCSIDは5035で指定されていたので、*FILEのままで実行しました。65535の場合は指定が必要です。
    データベースのCCSIDはソースファイルQCBLSRCの表示で見られます。メンバーごとにCCSIDは持ちません!
    DSPFD FILE(DEMOLIB/QCBLSRC)
    image.png

  • IBM Bobで確認するためSTMFCCSID 1208にしております、STMFCCSID 5035(1399)は5250エミュレーターから見る分には文字化けしません。UTF-8で出力必要な場合は1208を指定してください。
    image.png
    image.png
    IBM bob(VS code)では文字化け。。。
    image.png

  • IFSにコピーするメンバーのディレクトリ(QCBLSRC)は作成してから、ソースメンバーをコピーする。(ホームディレクトリの下に直接コピーもできるけど)

  • 今回はIBM i の QCBLSRC(ソースファイル)に格納されている COBOL ソースを、SAKURA のホームディレクトリ配下に作成した QCBLSRC フォルダ に、ストリームファイルとしてコピーしました。

  • ストリームファイルオプションで書き出す際に、置き換えをするか追記をするか書き出しの方式を選択できる。
    image.png

3
0
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?