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
Здесь вы можете видеть, что функция автоконвертации сохраняла текст в правильном наборе кодов.
Рекомендации: