Страницы

Поиск по вопросам

четверг, 23 января 2020 г.

Как подружить luit и cp866?

#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) так что, если в вашем дистрибутиве более старая версия, то можно скачать и собрать актуальную версию.

Комментариев нет:

Отправить комментарий