Ibm midrange 如何确定CPYFRIMPF命令中使用的CCSID?

Ibm midrange 如何确定CPYFRIMPF命令中使用的CCSID?,ibm-midrange,Ibm Midrange,我试图将IFS流文件复制到AS400数据文件中,但使用默认的CCSID设置,复制的数据最终会变成一些奇怪的字符。在QSH下使用cat命令可以正确显示流文件的内容,因此我怀疑这与CCSID有关。我的问题是如何确定在我的案例中要使用的正确CCSID?检查源文件和目标文件CCSID 来自qsh的-S选项将标识IFS文件CCSID DSPFD将显示库文件属性 如果可以cat文件,则问题很可能是目标文件CCSID。对于EBCDIC,最常见的库文件CCSID是37 您可以使用DSPSYSVAL QCCSID

我试图将IFS流文件复制到AS400数据文件中,但使用默认的CCSID设置,复制的数据最终会变成一些奇怪的字符。在QSH下使用cat命令可以正确显示流文件的内容,因此我怀疑这与CCSID有关。我的问题是如何确定在我的案例中要使用的正确CCSID?

检查源文件和目标文件CCSID

来自qsh的
-S
选项将标识IFS文件CCSID

DSPFD
将显示库文件属性

如果可以
cat
文件,则问题很可能是目标文件CCSID。对于EBCDIC,最常见的库文件CCSID是37

您可以使用
DSPSYSVAL QCCSID
检查系统默认CCSID


CPYFRMIMPF
命令将根据IFS文件CCSID和库文件CCSID转换字符数据<代码>CRTPF默认为作业CCSID(从系统CCSID继承)。

检查源文件和目标文件CCSID

来自qsh的
-S
选项将标识IFS文件CCSID

DSPFD
将显示库文件属性

如果可以
cat
文件,则问题很可能是目标文件CCSID。对于EBCDIC,最常见的库文件CCSID是37

您可以使用
DSPSYSVAL QCCSID
检查系统默认CCSID


CPYFRMIMPF
命令将根据IFS文件CCSID和库文件CCSID转换字符数据
CRTPF
默认为作业CCSID(从系统CCSID继承)。

@God\u of \u Thunder假设
QCCSID
设置正确,系统应自行处理。什么是源(IFS)和目标(QSYS)CCSID?很抱歉这么晚才接受。实际上,问题是由默认作业CCSID引起的,因此我必须使用RTVJOBA检索它并将其分配给CPYFRIMPF。但你的回答仍然提供了有用的见解。谢谢。使用“默认”作业CCSID意味着作业CCSID不正确。最好首先确保QCCSID系统值是适当的(尤其不是65535),其次确保作业CCSID是正确的。可以使用CHGJOB CCSID()设置作业CCSID,但是使用chgusrpf CCSID()设置一次用户配置文件比更改每个作业要好。(理想情况下,QCCSID系统值可以照顾到每个人和每个工作。)@God_of_Thunder假设
QCCSID
设置正确,系统应该照顾好自己。什么是源(IFS)和目标(QSYS)CCSID?很抱歉这么晚才接受。实际上,问题是由默认作业CCSID引起的,因此我必须使用RTVJOBA检索它并将其分配给CPYFRIMPF。但你的回答仍然提供了有用的见解。谢谢。使用“默认”作业CCSID意味着作业CCSID不正确。最好首先确保QCCSID系统值是适当的(尤其不是65535),其次确保作业CCSID是正确的。可以使用CHGJOB CCSID()设置作业CCSID,但是使用chgusrpf CCSID()设置一次用户配置文件比更改每个作业要好。(理想情况下,QCCSID系统值可以照顾每个人和每个工作。)