chtag не работает в z/OS UNIX

Я пытаюсь пометить файлы ASCII на хосте z/OS, поэтому нам не нужно указывать кодовую страницу в командной строке.

> 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

Слово Hello сохраняется как EBCDIC, несмотря на пометку файла как 819.
Далее настройка _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

Здесь вы можете видеть, что функция автоконвертации сохраняла текст в правильном наборе кодов.

Рекомендации:

Другие вопросы по тегам