Пакет программ EastKey предоставляет возможность работать с буквами русского
алфавита в среде SCO UNIX. Основные характеристики:
- Четыре кодировки кириллицы: cp866, koi8-r, windows-1251, iso8859-5.
- Хранение и обработка информации в любой из четырех кодировок (технология
NLS). Преобразование файлов, содержащих кириллицу, из одной кодировки в
другую.
- Смена кодировки кириллицы во время работы, запуск отдельной программы в
произвольной кодировке.
EastKey предназначен для русификации:
- системной консоли SCO UNIX.
- персональных компьютеров, используемых в качестве эмулятора терминала.
- терминалов, имеющих встроенные русские шрифты и переключатель РУС/LAT.
Пакет EastKey поддерживает кодировки: cp866, koi8-r, windows-1251, iso8859-5.
Эти кодировки могут быть как внутренними, так и внешними. Кодировка, в которой
хранятся данные называется внутренней; кодировка, в которой работает перифе-
рийное устройство называется внешней. При вводе данные преобразуются из внеш-
ней кодировки во внутреннюю, а при выводе из внутренней во внешнюю. В аргумен-
тах команд, переменных окружения и именах системных файлов применяются обозна-
чения:
Название кодировки Обозначение Значение переменной LANG
cp866 alt en_RU.CP866 ru_RU.CP866
koi8-r koi en_RU.KOI8-R ru_RU.KOI8-R
windows-1251 win en_RU.CP1251 ru_RU.CP1251
iso8859-5 iso en_RU.ISO8859-5 ru_RU.ISO8859-5
В пакете имеется возможность выбора языка для вывода дней недели, названий ме-
сяцев и т.д. Поддерживаемые языки: английский (en), русский (ru).
Инсталляция и настройка пакета EastKey.
Для установки пакета зарегистрируйтесь в системе как root и при помощи команды
tar xv скопируйте находящиеся на дистрибутивной дискете файлы. Для настройки
введите команду /usr/lib/eastkey/config. Процедура предложит следующее меню:
1. Set codeset
2. Set default language
3. Remove
q. Quit
Для изменения внутренней кодировки выберете 1. Для изменения языка, используе-
мого при выводе сообщений, выберете 2. Для удаления пакета выберете 3, при
этом восстановятся настроечные файлы, существовашие до инсталляции пакета.
После инсталляции переключение РУС/LAT осуществляется клавишей 'CapsLock', так
же возможен набор русских букв при нажатой клавише 'Alt'.
Настройка пакета для конкретного пользователя.
Пользователи могут работать в кодировке, отличной от установленной по умолча-
нию. Для этого необходимо (например, в .profile'е) определить переменную
LANG=<язык>_RU.<внутренняя кодировка>
export LANG
и выполнить команду
mapchan -f /usr/lib/mapchan/ek.<устройство>.<внешняя кодировка>.
<внутренняя кодировка>
где <устройство> это либо console для системной консоли SCO UNIX, либо pc для
персональных компьютеров и терминалов. Если пользователь работает на системной
консоле, то внешняя кодировка должна быть alt.
Например, если пользователь работает в MS Windows и заходит на UNIX в режиме
эмуляции терминала, то в его .profile необходимо добавить:
LANG=ru_RU.KOI8-R
export LANG
mapchan -f /usr/lib/mapchan/ek.pc.win.koi
Запуск команды в произвольной кодировке.
Для запуска команды в произвольной кодировке предназначена утилита newlocale.
Формат:
newlocale [-h] [-e extcode|'console'] [-i intcode] [-l lang] [-c string]
-h получить краткий список опций
-e extcode внешняя кодировка (если команда запускается на системной
консоле, то вместо кодировки должно стоять console)
-i intcode внутренняя кодировка
-l lang язык для сообщений
-c cmd исполняемая команда и ее аргументы
Если не указана внутренняя кодировка или язык, то берутся значения, установ-
ленные при настройке пакета. Если не задана внешняя кодировка, то используется
альтернативная. Если не задана команда, то запускается командный интерпрета-
тор.
Например, если по умолчанию стоит внутренняя кодировка cp866, а необходимо
редактировать файл в iso8859-5, то достаточно запустить редактор в iso8859-5:
newlocale -e console -i iso -c vi <файл>
если вы работаете на консоле или
newlocale -i iso -c vi <файл>
если вы работаете на терминале с альтернативной кодировкой.
Реальный пример: на сервере принята альтернативная кодировка, но почта поль-
зователей и конференции хранятся в koi8-r. Для нормального чтения почты и
новостей в домашнем каталоге пользователя создается каталог bin (который ста-
вится первым в переменной PATH) и в этом каталоге создаются слинкованные друг
с другом командные файлы mutt, tin, lynx:
#!/bin/sh
exec newlocale -i koi -e console -c "/usr/local/bin/`basename $0` $*"
В результате при запуске mutt будет запускаться командный файл из домашнего
каталога пользователя, который настроит перекодировку ввода/вывода и запустит
mutt из каталога /usr/local/bin.
Также полезно сделать командный файл /usr/local/bin/k:
#!/bin/sh
exec newlocale -i koi -e console -c "$*"
В итоге для просмотра текста в koi8-r достаточно запустить:
k less filename
Перекодировка файлов.
Для преобразование файлов, содержащих кириллицу, из одной кодировки в другую
предназначены утилиты вида:
<входная кодировка>2<выходная кодировка>
Например, для преобразования файла из кодировки windows-1251 в iso8859-5 необ-
ходимо запустить:
win2iso < <входной файл> > <выходной файл>
Для преобразования текста из quoted-printable или HTML escape последователь-
ностей (в случае необходимости с одновременной перекодировкой) предназначены
ключи '-q' и '-w'. Если перекодировка не нужна, следует использовать утилиту
reconv.
Данный пакет программ дается без гарантии, как есть. За любые последствия,
связанные с его использованием, я ответственности не несу.
Николай Парфенов
E-mail: nik@eastsoft.saratov.su
FidoNet: 2:5053/44