кодировка/локаль IBM866 в консоли. как?

PCLinuxOS

Модератор: Bizdelnick

Аватара пользователя
Variator
Сообщения: 50
ОС: openSUSE 13.1

кодировка/локаль IBM866 в консоли. как?

Сообщение Variator »

С прошедшими всех.
Помогите победить проблему пожалста.

Суть проблемы:
1. необходимо из консоли (хоть Konsole, хоть xterm) телнетом подключаться к удаленному серваку
2. удаленный сервак пользует кодировку IBM866 и после подключения к нему я не могу ввести русские символы . Отображение русского происходит правильно (я в Konsole указал, что показывать надо в IBM866)

в результате гугленья ( http://test.gentoo.ru/node/9440 ) было найдено, что нынешний luit не поддерживает 866-ю кодировку.

Как пересобрать этот злополучный luit для мандривы, чтоб он поддерживал 866-ю кодировку? (желательно собрать rpm-ку, ибо надо будет поправлять на нескольких машинах и неоднократно, если кто может - помогите)
И как правильно добавить саму 866-ю локаль? ибо что-то у меня с прямизной рук :unsure:

система - mandriva 2010.2 i586 (KDE)
Флюгер был приколочен намертво - и ветер обречённо дул в указанном направлении.
Спасибо сказали:
Аватара пользователя
SinClaus
Сообщения: 1952
Статус: Мучитель Мандривы
ОС: Arch,BSD

Re: кодировка/локаль IBM866 в консоли. как?

Сообщение SinClaus »

Поиск по пакетам показал, что стандартно кодовая таблица cp866 не поддерживается. НО! Есть в наличии dosbox, в котором 866я кодировка по умолчанию для русской системы. Вроде бы.
Спасибо сказали:
Аватара пользователя
Variator
Сообщения: 50
ОС: openSUSE 13.1

Re: кодировка/локаль IBM866 в консоли. как?

Сообщение Variator »

SinClaus писал(а):
11.01.2011 15:13
Поиск по пакетам показал, что стандартно кодовая таблица cp866 не поддерживается. НО! Есть в наличии dosbox, в котором 866я кодировка по умолчанию для русской системы. Вроде бы.


linux -> dosbox -> linux - что в этом неправильное.
а уж как печать из удаленной системы на локальном принтере мне потом надо будет организовывать? Где я столько мозгов возьму?
Флюгер был приколочен намертво - и ветер обречённо дул в указанном направлении.
Спасибо сказали:
Аватара пользователя
SinClaus
Сообщения: 1952
Статус: Мучитель Мандривы
ОС: Arch,BSD

Re: кодировка/локаль IBM866 в консоли. как?

Сообщение SinClaus »

Какие-то задачи извращённые, я бы сказал. Мощи телепата не хватает, что бы понять, что же надо, если получается схема линукс - досбокс - линукс то откуда 866 кодовая страница?
Спасибо сказали:
Аватара пользователя
Variator
Сообщения: 50
ОС: openSUSE 13.1

Re: кодировка/локаль IBM866 в консоли. как?

Сообщение Variator »

SinClaus писал(а):
11.01.2011 17:30
Какие-то задачи извращённые, я бы сказал. Мощи телепата не хватает, что бы понять, что же надо, если получается схема линукс - досбокс - линукс то откуда 866 кодовая страница?


Почему же задачи извращенные? Что извращенного в том, чтобы телнетом с линуксовой машины заходить на линуксовый сервак? Проблема в том - что на серваке локаль и кодировка - 866-я! А в нынешнем luit 866-я кодировка выкинута и ввести русские буквы после соединения с серваком - невозможно. Увидеть можно, ввести нельзя! Вы же предложили использовать dosbox, а теперь говорите, что у меня задачи извращенные. Я не вижу - чем мне поможет dosbox?

Может я не совсем корректно описал проблему?
Похожая проблема упоминалась на форуме opennet'а, но решения не было, а связаться с топикстартером, чтоб узнать как он ее решил, если решил конечно - не получилось.

Попробую переформулировать:
Есть сервер базы данных под линуксом, он отдает все данные в ср866.
Под него написана клиентская программа. Пользователи заходят телнетом, стартуют программу и работают и печатают на свои локальные принтера. Под виндой все работает великолепно, использовался правда не стандартный клиент а NETTERM. Но вот из-под линукса у меня не получается ввести русский текст.
Флюгер был приколочен намертво - и ветер обречённо дул в указанном направлении.
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: кодировка/локаль IBM866 в консоли. как?

Сообщение nickm »

Variator писал(а):
11.01.2011 11:09
Как пересобрать этот злополучный luit для мандривы, чтоб он поддерживал 866-ю кодировку? (желательно собрать rpm-ку, ибо надо будет поправлять на нескольких машинах и неоднократно, если кто может - помогите)

На tigro.info были интересные статьи по сборке rpm

Кстати, как вариант с "легкими извращениями" - может попробовать pytty for linux?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: кодировка/локаль IBM866 в консоли. как?

Сообщение watashiwa_daredeska »

Variator писал(а):
12.01.2011 11:05
А в нынешнем luit 866-я кодировка выкинута
Если я правильно понимаю, luit использует файлы кодировок из локалей, которые генерятся localedef'ом. В принципе, эти файлы — обычные текстовые, написать файл для cp866, в принципе, не проблема, но муторно. Могу предложить Debian'овский.
Спасибо сказали:
Аватара пользователя
Variator
Сообщения: 50
ОС: openSUSE 13.1

Re: кодировка/локаль IBM866 в консоли. как?

Сообщение Variator »

nickm писал(а):
12.01.2011 11:57
Кстати, как вариант с "легкими извращениями" - может попробовать pytty for linux?


Увы - та же трабла. Но не исключено, что это именно из-за отсутсвия у меня на компе 866-й локали.
Как правильно ее добавить?
Флюгер был приколочен намертво - и ветер обречённо дул в указанном направлении.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: кодировка/локаль IBM866 в консоли. как?

Сообщение watashiwa_daredeska »

watashiwa_darede... писал(а):
12.01.2011 12:08
Могу предложить Debian'овский.
Чёрт, в Debian'е тоже нет.
Variator писал(а):
12.01.2011 12:09
Как правильно ее добавить?
localedef -i ru_RU -f cp866 ru_RU.cp866, но для этого нужен файл кодировки cp866, которого нет. Можно сочинить свой, взяв за основу один из имеющихся (например, cp1251) и воспользовавшись wikipedia://CP866. Путь к файлам кодировок выводится по localedef --help.
Спасибо сказали:
Аватара пользователя
Variator
Сообщения: 50
ОС: openSUSE 13.1

Re: кодировка/локаль IBM866 в консоли. как?

Сообщение Variator »

watashiwa_daredeska писал(а):
12.01.2011 12:22
но для этого нужен файл кодировки cp866, которого нет.


файлы кодировок я нашел - надо было установить glibc-i18ndata. там они фигурируют как IBM866
получается надо добавлять тогда так:
localedef -i ru_RU -f ibm866 ru_RU.ibm866
или все же
localedef -i ru_RU -f cp866 ru_RU.cp866 ?

watashiwa_daredeska писал(а):
12.01.2011 12:08
Если я правильно понимаю, luit использует файлы кодировок из локалей, которые генерятся localedef'ом.


Наверное "почти правильно" :) он их оттуда берет, но только если они перечислены в самом luit'е. то бишь надо еще и пересобирать luit - а я не умею :unsure:
Флюгер был приколочен намертво - и ветер обречённо дул в указанном направлении.
Спасибо сказали:
Аватара пользователя
SinClaus
Сообщения: 1952
Статус: Мучитель Мандривы
ОС: Arch,BSD

Re: кодировка/локаль IBM866 в консоли. как?

Сообщение SinClaus »

Посмотрел, в Yakuake (которая тоже терминал) кодировка окна в IBM866 есть. Насколько понимаю, через тот же luit или подобный механизм, т.е. двустороннее преобразование. По крайней мере в KOI8R преобразует в обе стороны.
Спасибо сказали: