Поиски локали, когда в терминале не видно ни зги

bitrixbiz
эта программа выбрана как показательный пример. Можно взять любую другую, просто так получилось, что ближе подвернулось то и взял. Ближе конечно к праздному интересу, но не совсем.
Похоже, как показательный пример, эта программа выбрана не удачно …
Попробовал запустить в Arche, конечно, без полной установки программного обеспечения - просто один плагин sb_pilot …. и что я подметил
1. Закрались сомнения, что ты запускал плагин в Arche …... мне чтобы запустить, потребовались определенные манипуляции с динамическими библиотеками.
2. Запустил - привожу картинку — нажимая на F2, F4 попадаешь в разные менюшки, но …. кирилица так и не читается ….
3. Пришлось залазить в бинарник (файл upnixmn.out), где это прописано … привожу несколько строк из этого кода в разных кодировках
ru_RU.UTF8
00000000  00 8f ae a4 e2 a2 a5 e0  a4 a8 e2 a5 3a 00 46 32  |............:.F2|
00000010  2d 20 ac a5 ad ee 20 20  20 46 34 2d 20 a2 eb e5  |- ....   F4- ...|
00000020  ae a4 00 20 20 46 32 2d  20 90 a0 a7 a1 ab ae aa  |...  F2- .......|
00000030  a8 e0 ae a2 a0 e2 ec 00  20 20 46 32 2d 20 a2 a2  |........  F2- ..|
00000040  a5 e1 e2 a8 20 a2 e0 e3  e7 ad e3 ee 00 8a a0 e0  |.... ...........|
ru_RU.KOI8-R
00000000  00 8f ae a4 e2 a2 a5 e0  a4 a8 e2 a5 3a 00 46 32  |.���⢥न��:.F2|
00000010  2d 20 ac a5 ad ee 20 20  20 46 34 2d 20 a2 eb e5  |- ����   F4- ���|
00000020  ae a4 00 20 20 46 32 2d  20 90 a0 a7 a1 ab ae aa  |��.  F2- �������|
00000030  a8 e0 ae a2 a0 e2 ec 00  20 20 46 32 2d 20 a2 a2  |�஢���.  F2- ��|
00000040  a5 e1 e2 a8 20 a2 e0 e3  e7 ad e3 ee 00 8a a0 e0  |���� �������.���|
В итоге смог прочитать данный ASCII код только в кодировке CP866 Windows/DOS и то используя специальный для этого hex редактор
Вот чему соответствуют эти строки ASCII кода
00000000  00 8f ae a4 e2 a2 a5 e0  a4 a8 e2 a5 3a 00 46 32  |Потвердите:    F2|
00000010  2d 20 ac a5 ad ee 20 20  20 46 34 2d 20 a2 eb e5  |- меню  F4-   вых|
00000020  ae a4 00 20 20 46 32 2d  20 90 a0 a7 a1 ab ae aa  |од   F2-  Разблок|
00000030  a8 e0 ae a2 a0 e2 ec 00  20 20 46 32 2d 20 a2 a2  |кировать  F2-  вв|
00000040  a5 e1 e2 a8 20 a2 e0 e3  e7 ad e3 ee 00 8a a0 e0  |ести вручную  Кар|
4. Итак кодировка нашлась, установил соответствующую ей локаль IBM866 - ru_RU.IBM866 ….. запустил модуль — таже картинка, как и с ru_RU.KOI8-R … вообщем текст не видим ….
5. ИТОГ — вспомнил, что такие случаи с консольными прогами раньше бывали и здесь нужно влезать в это глубже ….. но я дальше решил не углубляться …. считаю это просто не ружным и не заслуживающим внимания ….
То есть пример ты выбрал не удачно ... ну а я не много покапался в коде, чтобы не забыть ...
Ошибки не исчезают с опытом - они просто умнеют
bitrixbiz, намного интереснее русский текст перевести в английский ...
Ошибки не исчезают с опытом - они просто умнеют
bitrixbiz, Вот результат небольшой работы … меню … и твоя картинка (вход по F4) ..
Ошибки не исчезают с опытом - они просто умнеют
Вообщем посмотрел еще раз внимательнее и пришел к выводу, что увидеть кирилицу в данной проге, без истинной локали cp866 (а не ее заменителя IBM866) ..... не получится.
CP866 это DOS'овская кодировка и по идее нужно ставить именно эту локаль cp866 (тем более hex редактор с данной кодировкой кирилицу видит), а не ее альтернативу IBM866 ….. но в Arh кодировки cp866 нет ........ нужно ее скачивать отдельно
$ ls /usr/share/i18n/charmaps | grep 866
IBM866.gz
IBM866NAV.gz
UPD ... ну и возможно еще причина кроется в пакете ncurses .... проге нужна библиотека libncurses.so.5, а в действующем Arche ее нет, пришлось делать симлинк на /usr/lib/libncursesw.so.6.0 ........ а вот в полном ли объеме это замещение, неизвестно ...
Ошибки не исчезают с опытом - они просто умнеют
vasek
Вообщем посмотрел еще раз внимательнее и пришел к выводу, что увидеть кирилицу в данной проге, без истинной локали cp866 (а не ее заменителя IBM866) ..... не получится.
CP866 это DOS'овская кодировка и по идее нужно ставить именно эту локаль cp866 (тем более hex редактор с данной кодировкой кирилицу видит), а не ее альтернативу IBM866 ….. но в Arh кодировки cp866 нет ........ нужно ее скачивать отдельно
$ ls /usr/share/i18n/charmaps | grep 866
IBM866.gz
IBM866NAV.gz
UPD ... ну и возможно еще причина кроется в пакете ncurses .... проге нужна библиотека libncurses.so.5, а в действующем Arche ее нет, пришлось делать симлинк на /usr/lib/libncursesw.so.6.0 ........ а вот в полном ли объеме это замещение, неизвестно ...

Задержался я, работа....
Спасибо тебе дружище за такой расклад по полочкам. Если по чесноку, заманало меня в винду прыгать из-за этой утилиты, на кассе всё тупо настраивается по инструкции, но иногда надо с терминалом отдельно поработать, пролить там, то да сё. А у меня основная система Linux.
Да, на арче не всё так просто оказалось с библиотекой, пришлось из aur собирать, благо yaourt ручную работу почти всю на себя взял :)
всё таки cp866, а не koi8r говоришь? Интересно... Чуть позже время освободится проверю и продолжим тему.... Спасибо!

P.S. И да, тему не считаю не заслуживающей внимания, ибо иногда людям просто не хватает информации, как решить проблему, пусть эта тема будет миниfaq.
Например вопрос, каким hex-редактором ты просмотрел файл и определил кодировку?
Далее пойдут вопросы как заставить это работать. Пусть люди читают, учатся.
bitrixbiz, рекомендую бросить это занятие (sb_pilot в Linux) … пишут, что это бесполезно.
Нагуглил варианты работы с CP866 - установить локаль IBM866 или CP1251 и установить соответствующие шрифты (ibm866 ...в Arche их нет), и вроде бы один из вариантов должен помочь.
Попробовал только один из вариантов — установил локаль IBM866 и поставил шрифты ter-u12b_ibm866 и ему подобные (из дебиановского пакета xfonts-terminus-dos) …. не получилось ….. с CP1251 экспериментировать не стал — закралась мысль, что без пропатчивания ничего не получится, …. еще погуглил и нашел следующее
Поддержка 8битных кодировок в качестве локали прекращена.
Про работу с локалью CP866 в X-ах лучше забыть сразу. Пока что ни у одного человека, которому бы была нужна эта локаль, не хватило  терпения и квалификации корректно пропатчить X-ы для поддержки этой локали ….. а в части отображения этой локали в консоли - некоторые символы из диапазаона 0x80-0x9f (в котором в 866 имеет русские буквы), воспринимаются драйвером консоли как  управляющие.
Насчет hex редактора — установил wxmedit - поддерживает все основные кодировки (UTF8/16/32, ISO-8859-x, CP125x, KOI8, GB18030, Big5, ...) не только в Текстовом/Колоночном режиме , но и в шестнадцатеричном (Hex) режиме.
Ошибки не исчезают с опытом - они просто умнеют
нагнал ты на меня тоску, нешто не получится избавится от винды? Проще тогда избавится от линуха.
 
Зарегистрироваться или войдите чтобы оставить сообщение.