CP1251 в консоли
Благодаря недавно появившемуся здесь патчу для NetBSD 3.1 (dixx - респект! ;)), позволяющему использовать в консоли кодировки, не поддерживаемые по умолчанию операционной системой, захотелось заиметь у себя $subj, ради совместимости в Windows машиной.
Что я сделал:
1) Проделал всё то, что написано здесь, после чего получил желаемую локаль: ru_RU.CP1251.
bash-3.2# locale -a | grep ru ru ru_RU.CP1251 ru_RU.CP866 ru_RU.CPISO8859-5 ru_RU.KOI8-R ru_RU.UTF-8
2) Т.к. ранее моими усилиями консоль NetBSD была русифицирована, я поправил некоторые переменные окружения. Теперь стало:
bash-3.2# set | grep ru LANG=ru_RU.CP1251 LC_CTYPE=ru_RU.CP1251
3) Далее я заменил шрифты в кодировке KOI8-R, которые у меня стояли, на соответствующие шрифты, только уже в кодировке CP1251. С помощью скриптов wsfontload и wsconsctl я добавил и установил их на нужную мне консоль. Впрочем, это всё замечательно описывается здесь.
Вот тут случилась загвоздка. Кириллица не показывалась, а при попытке её напечатать (предварительно, разумеется, переключившись в консоли на кириллицу с помощью Caps Lock) - я слышал лишь непродолжительный beep из внутреннего динамика компьютера.
На мой взгляд всё дело в файле перекодировки (keymap). Раньше для KOI8-R я использовал файл /usr/share/wscons/keymaps/pckbd.ru.koi8-r. Он указывался в конфиге /etc/wscons.conf следующим образом:
mapfile /usr/share/wscons/keymaps/pckbd.ru.koi8-r
Поискав в директории /usr/share/wscons/keymaps, я не нашёл ничего подходящего для решения моей задачи.
Далее я искал подобный файл уже в FreeBSD 6.1, надеясь, что структура этих файлов перекодировок в схожих ОС хотя бы примерно одинакова. Что-то нашёл, но, к моему сожалению, файлы были совсем не похожи друг на друга.
Подскажите, где можно взять нужный мне keymap? Или всё-таки придётся переделывать файл, взятый из FreeBSD? Не хотелось бы тратить время на то, что уже давным-давно сделано.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 3149 просмотра
Русский keymap
Русский keymap файл для кодировки CP1251:
Сразу. Из неожиданного - список символов, которые не указаны на стандартной клавиатуре, но благодаря "А почему бы и нет?" - были включены в данный keymap.
1. При нажатии сочетания клавиш '1'+Shift при включённом русском языке появился новый символ - так называемый символ copyright (с английского это переводится как "авторское право"). Выглядит как буква "C", начертанная в середине небольшой окружности.
Код в таблице кодировки CP1251: 0A9h = 169d
2. При нажатии сочетания клавиш '5'+Shift при включённом русском языке появился новый символ - символ "зарегистрированной марки". Выглядит как латинская буква 'R', начертанная в середине небольшой окружности.
Код в таблице кодировки CP1251: 0AEh = 174d
3. При нажатии сочетания клавиш '8'+Shift при включённом русском языке появился новый символ - символ "параграфа".
Код в таблице кодировки CP1251: 0A7h = 167d
4. При нажатии сочетания клавиш '9'+Shift при включённом русском языке появился новый символ - символ левосторонней двойной кавычки. Даже не знаю, как это лучше назвать, но на обычную кавычку этот символ не похож. В общем - смотрите по таблице кодировки.
Код в таблице кодировки CP1251: 0ABh = 171h
5. При нажатии сочетания клавиш '0'+Shift при включённом русском языке появился новый символ - символ правосторонней двойной кавычки. Тоже самое, что и в пункте под номером 3, только кавычка правосторонняя.
Код в таблице кодировки CP1251: 0BBh = 187h
6. При нажатии сочетания клавиш '='+Shift при включённом русском языке появился новый символ - символ "плюс-минус".
Код в таблице кодировки CP1251: 0B1h = 177h
Таблицу кодировки CP1251 можно посмотреть на .
Если кто найдёт ошибку/неточность - пишите или сюда или по указанным выше координатам.
Если кто поспособствует включению данного файла в дистрибутив NetBSD, связавшись с разработчиками - буду очень признателен.
О боже, прости
О боже, прости этого юзера, пожалуйста, прости!!