chtag 在 z/OS UNIX 上不起作用

chtag 在 z/OS UNIX 上不起作用

我正在尝试在 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

在这里您可以看到自动转换功能将文本存储在正确的代码集中。

参考:

相关内容