Процедуры преобразования представляют собой дополнительные компоненты; при необходимости они могут применяться в потоке терминала. Как правило, эти процедуры служат для обеспечения работы системы с разными языками и выполняют преобразования символов.
Модуль nls - это модуль преобразования нижнего уровня, который можно встраивать в поток данных терминала ниже уровня дисциплины линии. Модуль nls обеспечивает преобразование символов при вводе и выводе на нестандартных терминалах (не поддерживающих основной кодовый набор системы - ISO 8859).
Правила преобразования указаны в двух файлах преобразования в каталоге /usr/lib/nls/termmap. Файлы с расширением .in содержат правила преобразования символов, вводимых с клавиатуры, а файлы с расширением .out - символов, выводимых на дисплей. Формат этих файлов описан в разделе "setmaps file format" книги AIX 5L Version 5.1 Files Reference.
Модуль nls можно записывать в поток терминала автоматически с помощью команды setmaps. Эта операция обычно выполняется при запуске системы на этапе настройки подсистемы терминалов.
Модули преобразования uc_sjis и lc_sjis также можно записывать в поток терминала. Они обеспечивают обработку определенных кодовых наборов: например, выполняют преобразование многобайтовых символов между японским стандартом SJIS и расширенным кодовым набором EUC для японского языка AJEC (это преобразование поддерживается протоколом линии передачи данных). Эти модули нужны в том случае, если пользовательский процесс и терминал работают с кодовыми наборами IBM-943 или IBM-932.
KAJEC - это японская реализация метода кодирования EUC (Расширенный код UNIX), который позволяет работать одновременно с символами ASCII, фонетическими символами Кана и идеографическими символами Канжи. AJEC представляет собой надмножество UJIS (Японского промышленного стандарта для UNIX), являющегося наиболее распространенной реализации EUC для японского языка.
Данные на японском языке могут
включать в себя символы из четырех кодовых наборов:
В AJEC применяются все четыре кодовых набора. В SJIS применяются лишь наборы ASCII, JIS X0201 и JIS X0208. В связи с этим модули uc_sjis и lc_sjis выполняют следующие преобразования:
Модули uc_sjis и lc_sjis всегда применяются совместно. Модуль преобразования верхнего уровня uc_sjis записывается в поток терминала над уровнем линии передачи данных; а модуль lc_sjis - под этим уровнем. Модули uc_sjis и lc_sjis можно записывать в поток терминала автоматически с помощью команды setmaps или функции setcsmap. Кроме того, ими можно управлять с помощью операций ioctl EUC, информация о которых приведена в описании файла eucioctl.h книги AIX Version 4 Files Reference.
Глава 16, Поддержка национальных языков
Формат файла setmaps, файл eucioctl.h.
Команда setmaps, функция setcsmap.