#linux #кодировка #utf_8
Linux. utf8.
[root@pandora ~]# luit -list | grep 866
не дает нам ничего, а надо чтобы была 866 кодировка. Как научить luit понимать её?
p.s. xorg-x11-apps последний стоит. CentOS 5.6
UPD
Ну я, в общем, все сделал. Сейчас поясню. Для того, чтобы с linux ходить в консоль
винды, надо иметь поддержку cp866 в консоли.
Итак, нам надо пропатчить luit (это тулза, которая фоном поток конвертит из чужеродной
локали в текущую), чтобы она понимала cp866. У меня CentOS 5.x, делал для него.
Что я сделал.
Убедился, что такой локали у меня нет locale -a | grep 866
Проверил, что charmaps для 866 присутствует ll /usr/share/i18n/charmaps/IBM866.gz
Создал локаль IBM866. localedef -i ru_RU -f IBM866 ru_RU.IBM866. подготовка завершена,
теперь надо патчить luit
Скачал исходники xorg-x11-apps.src.rpm, развернул и нашел в исходниках архив luitа,
развернул его и нашел там файл charset.c.
В нем, в описании массива:
FontencCharsetRec fontencCharsets[] = {
Добавил строку:
{"IBM866", T_128, 0, "ibm-cp866", 0x80, 0, 0}
Затем в описании
LocaleCharsetRec localeCharsets[] = {
Добавил
{ "ibm866", 0, 2, "ASCII", NULL, "IBM866", NULL, NULL}
Сохранил, затарил само дерево luit, перекомпилировал в новый rpm, установил и получил
пофиксенный и рабочий комплект.
Вот как это теперь выглядит: win2lin http://dl.dropbox.com/u/66475831/Sites/inet/luit.gif
Ответы
Ответ 1
описанная в вопросе проблема очень устарела. уже 2011/10/30 в luit была внесена правка: 2011/10/30 add entries to the locale-charset table to correspond with the font-encoding table, making it possible to use locales defined with each named charset (reported by Andrey Ivanov, also reported in Freedesktop #41857) так что, если в вашем дистрибутиве более старая версия, то можно скачать и собрать актуальную версию.
Комментариев нет:
Отправить комментарий