2

Я пытаюсь пометить файлы 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 ответ1

4

Существуют механизмы поддержки для автоматического преобразования на основе тегов. Чтобы сделать то, что вам интересно, я скопировал ваш сценарий в моей системе 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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .