[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Принципы управления системой: Операционная система и устройства


Описание процедур преобразования

Принципы Поддержки национальных языков (NLS) позволяют обмениваться данными в международном масштабе, выполняя преобразование данных из одного кодового набора в другой. Например, вам может потребоваться преобразовать текстовые файлы или каталоги сообщений. Для этой цели предусмотрено несколько стандартных процедур преобразования.

В этом разделе рассматриваются следующие аспекты преобразования:

Программы преобразования - введение

В некоторых случаях при отправлении одной программой данных в другую программу, расположенную на удаленном хосте, может потребоваться преобразование этих данных из кодового набора исходного компьютера в кодовый набор целевого компьютера. Например, при связи с системой IBM VM данные системы преобразуются из формата ISO8859-1 в формат EBCDIC. Кодовые наборы задают соответствия символов и управляющих функций кодовым знакам. Символы должны быть преобразованы в том случае, если данные передаются программе в одной кодовом наборе, а показываются в другом.

Для выполнения преобразований разработаны два интерфейса:

В системе существует предопределенная библиотека процедур преобразования. Для выполнения преобразования необходимо указать имя процедуры. Библиотеки преобразования находятся в следующих каталогах: /usr/lib/nls/loc/iconv/* и /usr/lib/nls/loc/iconvTable/*.

Помимо процедур преобразования наборов символов библиотека содержит набор программ преобразования для обмена данными по сети. В сетевой среде необходимые способы преобразования данных определяются кодовыми наборами, применяемыми в подключенных к сети системах, а также протоколами передачи данных.

Процедуры преобразования для обмена данными применяются при передаче данных из одной системы в другую. Для перевода данных из одной внутренней кодовой страницы в другую необходимы процедуры преобразования кодовых страниц. Для преобразования данных из кодовой страницы отправителя в кодовую страницу получателя или из 8-разрядного формата в 7-разрядный требуется универсальный интерфейс. Такой интерфейс обеспечивается процедурами iconv.

Стандартные процедуры преобразования

Существуют стандартные процедуры преобразования, применяемые командой iconv и другими процедурами. Ниже перечислены различные типы процедур преобразования.

Список процедур преобразования приведен в книге Программирование для системы AIX 5L версии 5.1: Написание и отладка программ.

Тип преобразования

Типы процедур преобразования данных в формат для обмена

Библиотеки iconv

Утилита iconv состоит из функций, предоставляющих данные и процедуры для выполнения преобразований между кодовыми наборами. В нее также также входит команда iconv, выполняющая преобразование данных. В одной системе может применяться несколько процедур преобразования. То, какая именно процедура преобразования применяется программой iconv, зависит от значения переменной среды LOCPATH.

Примечание: Все программы setuid и setgid игнорируют значение переменной LOCPATH.

Процедуры преобразования для универсальной кодовой страницы UCS

UCS-2 - это универсальная 16-кодировка (см. описание кодовых наборов в книге Программирование для AIX 5L версии 5.1: Написание и отладка программ), применяемая в качестве универсального способа передачи данных, обеспечивающего совместимость практически всех кодовых наборов. При этом преобразование между любыми двумя кодовыми страницами XXX и YYY может быть выполнено с помощью Универсальных процедур преобразования UCS по следующей схеме:

XXX <-> UCS-2 <-> YYY

Кодовые страницы XXX и YYY должны быть включены в список поддержки процедур преобразования для обмена данными UCS-2 и установлены в системе.

Универсальная процедура преобразования установлена в виде файла /usr/lib/nls/loc/iconv/Universal_UCS_Conv. Для создания нового способа преобразования достаточно создать в каталоге /usr/lib/nls/loc/iconv новую ссылку с соответствующим именем. Например, для добавления процедур преобразования между IBM-850 и IBM-437 следует выполнить следующие команды:

ln -s /usr/lib/nls/loc/iconv/Universal_UCS_Conv
/usr/lib/nls/loc/iconv/IBM-850_IBM-437
 
ln -s /usr/lib/nls/loc/iconv/Universal_UCS_Conv
/usr/lib/nls/loc/iconv/IBM-437_IBM-850

Внимание: При создании ссылки, задающей преобразование несовместимых кодовых наборов (например, ISO8859-1 и IBM-eucJP), а также при наличии в исходных данных символов, отсутствующих в целевом кодовом наборе, возможна потеря данных.

Возможность преобразования между наборами многобайтовых и широких символов зависит от параметров текущей локали. Процессы не должны обмениваться данными, состоящими из широких символов, если только вы не уверены, что в каждой из используемых локалей возможна правильная обработка широких символов. В данной операционной системе большинство локалей применяют в качестве широких символов символы Unicode, за исключением локалей, основанных на кодовых наборах IBM-850 и IBM-eucTW.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]