Настройка и работа в Linux


Русификация для других кодировок


Рассмотренные рекомендации подразумевают, что вы будете использовать русскую кодировку koi8-r.

Как вы наверное знаете, существует по крайней мере еще две не менее популярные кодировки для русских букв cp866 и cp1251.

Можно ли заставить syscons (и дисплей, и клавиатуру) правильно работать с такими кодировками? Конечно, можно.

Как вы уже поняли, для дисплея необходимо загрузить соответствующие шрифты или screenmap, а для клавиатуры - таблицу "раскладки клавиатуры".

Кстати, для cp866 в системе уже есть все необходимое. То, что есть шрифты cp866 вы уже знаете (только надо убрать дополнительную перекодировку через screenmap), подходящая "раскладка клавиатуры" - ru.cp866, также имеется в /usr/share/syscons/keymaps.

А вот если вы хотите cp1251, то кое-что придется изготовить самостоятельно (или попросить у тех, кто уже сделал). Надо составить "раскладку клавиатуры" (назвать ее, например - ru.cp1251), а для дисплея проще всего делать не новые шрифты, а screenmap. Если у вас используются шрифты cp866, то надо просто изготовить табличку из 256 байт, которая будет транслировать коды из cp1251 в cp866 (пусть она называется - cp1251-cp866) и "подсунуть" ее syscons.

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

Например, если не трогать шрифты (пусть это будут шрифты для cp866) и "перенастройку" дисплея делать с помощью screenmap, то эти файлы могут выглядеть так:

  • для cp866

    kbdcontrol -l ru.cp866 vidcontrol -L

  • для koi8-r

    kbdcontrol -l ru.koi8-r vidcontrol -l koi8-r2cp866

  • для cp1251

    kbdcontrol -l ru.cp1251 vidcontrol -l cp1251-cp866

Напомню только, что и шрифты, и "таблица перекодировки", и "раскладка клавиатуры" действуют на все виртуальные терминалы. Поэтому установить для разных терминалов разные "типы русификации" не получится.

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

Если вы хотите, чтобы все программы нормально понимали русский язык в кодировках отличных от koi8-r, вам придется еще менять переменную окружения LANG (а возможно и некоторые другие). А для cp1251 еще и изготовить "locale" (набор таблиц, описывающих особенности национального языка). Кроме того, некоторые программы (например, чтения/писания почты) возможно придется "отконфигурировать" индивидуально.

Но, для того, чтобы "по быстрому" просмотреть или подправить какой-нибудь документ в "нестандартной" кодировке, скорее всего "сойдет" и описанное решение.

Иван Паскаль pascal@tsu.ru




Начало  Назад  Вперед



Книжный магазин