我正在尝试在 z/OS 主机 shell 上标记 ASCII 文件,因此我们不必在命令行上指定代码页。
> echo > iso.txt
> chtag -t -c 819 iso.txt
> vi iso.txt
输入“Hello”然后退出并保存
> ls -T iso.txt
t ISO8859-1 T=on iso.txt
> od -x iso.txt
0000000000 C885 9393 9615
检查该iso.txt
文件表明它包含 EBCDIC。
如何设置工具以利用代码页标记属性?请注意,使用显式指定代码页是-W filecodeset=819
有效的。
答案1
有支持机制可以根据标记进行自动转换。为了做您感兴趣的事,我在我的 z/OS 2.3 系统上复制了您的场景。为了完成您想要的操作,您可以设置_BPXK_AUTOCVT=ON
。我重复了提供的测试用例,然后设置_BPXK_AUTOCVT=ON
以演示所需的行为是否有效。
$ echo > iso.txt
$ chtag -t -c 819 iso.txt
$ ls -T iso.txt
t ISO8859-1 T=on iso.txt
$ vi iso.txt (enter Hello, save then exit)
$ od -x iso.txt
0000000000 C885 9393 9615
0000000006
尽管文件标记为 819,但单词 Hello 仍存储为 EBCDIC。
接下来,设置_BPXK_AUTOCVT=ON
启用自动转换。
$ export _BPXK_AUTOCVT=ON
$ echo > iso.txt
$ chtag -t -c 819 iso.txt
$ vi iso.txt (enter Hello, save then exit)
$ od -X iso.txt
0000000000 48656C6C 6F0A0000
0000000006
在这里您可以看到自动转换功能将文本存储在正确的代码集中。
参考: