The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"XTerm"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"XTerm"
Сообщение от ss1945 Искать по авторуВ закладки on 22-Июн-04, 15:47  (MSK)
У сабжа есть опция -en которая позволяет на лету перекодировать вывод
Вопрос где хранятся файлы перекодировки и в каком они формате
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

  • XTerm, Konstantin Stopani, 18:03 , 22-Июн-04, (1)
    • XTerm, ss1945, 10:27 , 23-Июн-04, (2)
      • XTerm, hatta, 11:23 , 23-Июн-04, (3)
        • XTerm, Sergey Markitanenko, 12:39 , 23-Июн-04, (4)
          • XTerm, hatta, 14:47 , 23-Июн-04, (5)
            • XTerm, ss1945, 15:19 , 23-Июн-04, (6)
              • XTerm, hatta, 16:30 , 23-Июн-04, (7)
                • XTerm, ss1945, 18:16 , 23-Июн-04, (8)
                  • XTerm, hatta, 20:09 , 23-Июн-04, (9)
                    • XTerm, hatta, 20:12 , 23-Июн-04, (10)
                      • XTerm, ss1945, 11:43 , 24-Июн-04, (11)
                        • XTerm, hatta, 14:30 , 24-Июн-04, (12)

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "XTerm"
Сообщение от Konstantin Stopani emailИскать по авторуВ закладки on 22-Июн-04, 18:03  (MSK)
Если бы вы читали маны, то, наверное, узнали бы, что перекодировкой за xterm занимается программка luit. Более того, там сказано, что список поддерживаемых кодировок можно получить командой luit -list, а если бы вы, не удовлетворившись уже добытыми знаниями, читали дальше, то к своему удивлению выяснили бы, как выяснил я, что все ресурсы лежат в /usr/X11R6/lib/fonts/encodings. Кодировки перечислены в файле encodings.dir, а описаны в отдельных файликах примерно так:

$ zcat microsoft-cp1251.enc.gz

STARTENCODING microsoft-cp1251
# This file is derived from data provided by the Unicode Consortium
STARTMAPPING unicode
0x80    0x0402  # CYRILLIC CAPITAL LETTER DJE
0x81    0x0403  # CYRILLIC CAPITAL LETTER GJE
0x82    0x201A  # SINGLE LOW-9 QUOTATION MARK
0x83    0x0453  # CYRILLIC SMALL LETTER GJE
0x84    0x201E  # DOUBLE LOW-9 QUOTATION MARK

...

0xFD    0x044D  # CYRILLIC SMALL LETTER E
0xFE    0x044E  # CYRILLIC SMALL LETTER YU
0xFF    0x044F  # CYRILLIC SMALL LETTER YA
ENDMAPPING
ENDENCODING

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "XTerm"
Сообщение от ss1945 Искать по авторуВ закладки on 23-Июн-04, 10:27  (MSK)
Скажем так, из моего поста нигде не видлно что маны я не читаю
Ведь не от хорошей жизни я полез в -en опцию, а не пробую заморочится с luit
Проблема выглядит примерно так:
# luit -encoding /usr/X11R6/lib/X11/fonts/encodings/ibm-cp866.enc
Warning: couldn't find charset /usr/X11R6/lib/X11/fonts/encodings/ibm-cp866.enc; using ISO 8859-1.
#pwd
/usr/X11R6/lib/X11/fonts/encodings/
# ls -l
[skip]
-r--r--r--    1 root     root         5536 Дек 10  2003 ibm-cp866.enc
[skip]
В чем грабли, ибо в манах это все не написано, по крайне мере я не нашел.
А в общее известные факты носом пихать самое легкое

>Если бы вы читали маны, то, наверное, узнали бы, что перекодировкой за
>xterm занимается программка luit. Более того, там сказано, что список поддерживаемых
>кодировок можно получить командой luit -list, а если бы вы, не
>удовлетворившись уже добытыми знаниями, читали дальше, то к своему удивлению выяснили
>бы, как выяснил я, что все ресурсы лежат в /usr/X11R6/lib/fonts/encodings. Кодировки
>перечислены в файле encodings.dir, а описаны в отдельных файликах примерно так:
>
>
>$ zcat microsoft-cp1251.enc.gz
>
>STARTENCODING microsoft-cp1251
># This file is derived from data provided by the Unicode Consortium
>
>STARTMAPPING unicode
>0x80    0x0402  # CYRILLIC CAPITAL LETTER DJE
>0x81    0x0403  # CYRILLIC CAPITAL LETTER GJE
>0x82    0x201A  # SINGLE LOW-9 QUOTATION MARK
>0x83    0x0453  # CYRILLIC SMALL LETTER GJE
>0x84    0x201E  # DOUBLE LOW-9 QUOTATION MARK
>
>...
>
>0xFD    0x044D  # CYRILLIC SMALL LETTER E
>0xFE    0x044E  # CYRILLIC SMALL LETTER YU
>0xFF    0x044F  # CYRILLIC SMALL LETTER YA
>ENDMAPPING
>ENDENCODING


  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "XTerm"
Сообщение от hatta emailИскать по авторуВ закладки(ok) on 23-Июн-04, 11:23  (MSK)
Sorry, если обидел ;-)
Кажется, для того чтобы luit -list выдавал в списке CP866 нужна русская локаль с этой кодировкой
т.е. надо сделать что-то вроде
localedef -v -c -i ru_RU -f CP866 ru_RU.CP866
от root. Я это не смог проверить - без root'а не хочет.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "XTerm"
Сообщение от Sergey Markitanenko emailИскать по авторуВ закладки on 23-Июн-04, 12:39  (MSK)
>Sorry, если обидел ;-)
Ничего :))) Я тож малость вспылил
Совсем чайниковский вопрос  - у меня нет этой локали (ASP linux 9.2).
Где ее взять или как ее добавить или куда хоть смотреть, а то в области русификации линуксов у мя полный провал знаний.

Спасибо большое

>Кажется, для того чтобы luit -list выдавал в списке CP866 нужна русская
>локаль с этой кодировкой
>т.е. надо сделать что-то вроде
>localedef -v -c -i ru_RU -f CP866 ru_RU.CP866
>от root. Я это не смог проверить - без root'а не хочет.
>


  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "XTerm"
Сообщение от hatta emailИскать по авторуВ закладки(ok) on 23-Июн-04, 14:47  (MSK)
>вопрос  - у меня нет этой локали (ASP linux 9.2).
>Где ее взять или как ее добавить или куда хоть смотреть
>>Кажется, для того чтобы luit -list выдавал в списке CP866 нужна русская
>>локаль с этой кодировкой

Ничего себе... Я посмотрел - в этом luit кодировки прописаны намертво и 866 среди них нету.
Я его чуть-чуть поредактировал и положил патч и бинарник в http://hatta.narod.ru/patchedluit.zip
Надеюсь поможет.
P.S. Исходники luit'а лежат в xc/programs/luit дерева XFree86 и X.org

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "XTerm"
Сообщение от ss1945 Искать по авторуВ закладки on 23-Июн-04, 15:19  (MSK)
Спасибо, сейчас буду разбираться?
А у тя аська есть? Моя 64828034
И если заработает скорлько с меня пива и куда отправлять:)?
>Ничего себе... Я посмотрел - в этом luit кодировки прописаны намертво и
>866 среди них нету.
>Я его чуть-чуть поредактировал и положил патч и бинарник в http://hatta.narod.ru/patchedluit.zip
>Надеюсь поможет.
>P.S. Исходники luit'а лежат в xc/programs/luit дерева XFree86 и X.org


  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "XTerm"
Сообщение от hatta emailИскать по авторуВ закладки(ok) on 23-Июн-04, 16:30  (MSK)
Я обновил бинарник - он теперь статически слинкован. НО:
1. у меня glibc 2.3 и соответственно NPTL
значит, он не запустится на ядре 2.4
2. у меня проинсталенна вручную локаль ru_RU.IBM866
значит, нужно сделать
localedef -c -v -f IBM866 -i ru_RU ru_RU.IBM866

запускается этот luit так: luit -encoding IBM866

у меня работает и перекодирует из 866 в UTF8

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "XTerm"
Сообщение от ss1945 Искать по авторуВ закладки on 23-Июн-04, 18:16  (MSK)
>у меня работает и перекодирует из 866 в UTF8
У меня тоже перекодируют, но режутся функциональные клавиши,
причем режутся на уровне XLib, соответственно я делаю вывод
что мне нужна XLocale CP866. А как ее можно собрать или куда рыть?

Да, патченный luit мне выдает сообщение
can't sel current locale или что то похожее,
если надо кину более точно


  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "XTerm"
Сообщение от hatta emailИскать по авторуВ закладки(ok) on 23-Июн-04, 20:09  (MSK)
>У меня тоже перекодируют, но режутся функциональные клавиши,
Вы знаете, у меня запускается xterm с этим luit, я в нем вызываю lynx,
выбираю там Display Character Set = cp866 и смотрю русские странички, а когда нажимаю F1, он мне показывает справку... так что я не понимаю, какие могут с этим возникнуть проблемы.

>Да, патченный luit мне выдает сообщение
>can't sel current locale или что то похожее,
>если надо кину более точно

Наверное, я уже надоел со своим localedef, но все выглядит так, как будто у вас нет скомпилированного описания локали ru_RU.IBM866.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "XTerm"
Сообщение от hatta emailИскать по авторуВ закладки(ok) on 23-Июн-04, 20:12  (MSK)
Забыл, самое главное: у меня
XFree86 4.4
linux 2.6.7-rc1
glibc-2.3
и LANG=ru_RU.UTF-8
  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "XTerm"
Сообщение от ss1945 emailИскать по авторуВ закладки on 24-Июн-04, 11:43  (MSK)
Лучше я расскажу все по порядку :))
У меня есть сервер базы данных под юнихом, он отдает все данные в ср866.
Под него написанна клиентская программа, по доступу. Пользователи заходят телнетом, стартуют программу и работают. Под виндой все было великолепно, использовался правда не стандартый клиент а Reflection с куячей навотротов.

И вот появилась задача перевести офис или его часть на линух. Сели смотреть
первое решение для консоли которое пришло в голову - шеллом пользователю поставить telnet servet_ip и все хорошо заработало, кроме русского ввода :)) Как то с ср-шной кодировки не хотелось вводится :)) поэтому от этого варианта отказались.
Следующий шаг по разборке с консолью закончился следующим
#setfont cp866-8x16 -m cp866
#loadkeys /lib/kbd/keymaps/i386/qwerty/ru2.map.gz
#telnet server_ip
Но во первых летела локаль, вернее русский вывод. Во вторых эта операция хорошо выполняется под рутом, но я очень сумневаюсь что она выполнится под простым юзером, а давать всем юзерам рута - не по себе становится.

Но в принципе хоть какой то результат достигнут, и мы полезли выше - а выше Иксы. Я запустил Гном-терминал, и был приятно поражен тем, что все перевелось с полпинка, не считая небольшой мелочи - нельзя было использовать функциональные клавиши(Ф1-Ф..). Фигня подумал я :)) скорее всего умные парни и КДЕ сделали свой терминал намного лучше. И правда,
запускаю я их Консоль , в параметрах соеденения нахожу вкладочку - тип терминала, меняю на линукс (как на сервере, кстате, забыл сказать на сервере термкап обработали напильником немного, так как там был еще и загадочный терминал, деталей не знаю, так как делал не я)
и полез коннектится. Да, все функциональные клавиши работают, проблема в том что вывод не перекодируется из ср866 в мою локаль ср1251.

Фигня подумал я. Счас интернет поднимем науши и какой то патчик найдем что  
бы объеденить эти две удобные программы. Патчик я не нашел, но понял что все дороги ведут к xterm. Так началась очередная глава.
Перерыв man на xterm  я нашел три опции которые по идее должны меня спасти
-en - которая указывает путь к файлу перекодировки, но эта опция устарела и надо пользоваться
-lc - которая включает luit для автоматической перекодировки
и еще меня крепко заинтересовала опция
-fn в которой надо указать имя используемого фонта

Этап половых извращений с xtermом я описыватьт не хочу, так как всего не помню, но в какой то момент я запостил свой вопрос на форум. Вы абсолютно верно сказали мне, что дело в luit, скорее даже не в нем самом, покай не мере у меня, а в отсутствии на моей машине локали cp866. Ведь luit используется для перекодировки на лету между локалями. На этом этапе благодаря ващей подсказке я полностью перерыт ман на localedef и сделал свою ср 866 локаль. В консоли все стало просто великолепно ( не считая того что не работает бекспейс и буква "ы", но я где то в нете видел доку по тому как это обработать напильником, правда сейчас не могу найти адрес).

Довольный и предвкушающий я запустил иксы и ломанулся в гном-терминал. Он транслировал все без дополнительных пинков, но функциональные клавиши не работали все также. Ну сейчас парни из КДЕ покажут почему КДЕ рулит, подумалось мне, когда я запускал Консоль. Действительно, проблем с кодировкой не было, но появилась проблема с функциональными клавишами, я кинулся исправлять по проверенному мною пути - меняя тип терминала, но ничего не произошло. Я решил проверить что скажет xterm
# xterm
Warning: locale not supported by Xlib, locale set to C
это на патченном луите
[root@it_troll /]# xterm
Warning: could not find charset for ru_RU.ibm866; using ISO 8859-1
а это на непатченном
Соответственно он не перекодирует

Единственный вывод, который я могу сделать - надо точно так же как и локаль (LOCALE) самому собирать XLOCALE для ср866. Тогда все должно заработать.

На этом этапе я и заткнулся

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "XTerm"
Сообщение от hatta emailИскать по авторуВ закладки(ok) on 24-Июн-04, 14:30  (MSK)
В связи с тем, что вы поведали у меня возникает несколько вопросов
1. Программа-клент не занимается никакой обработкой строк, циркулирующих между пользователем и БД, не так ли?
2. Для функционирования xterm с опцией -en должны выполняться некоторые условия, а именно, он должен запускаться из-под локали ru_RU.UTF-8, либо с опцией -u8, включающей поддержку unicode; шрифт тоже должен быть юникодным, т.е. что-то вроде -misc-fixed-medium-r-*-*-13-*-*-*-*-*-iso10646-1, эти шрифты можно взять из пакета ucs-fonts
http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html
хотя, они наверняка есть в вашей системе.
3. Насчет функционеальных клавиш... вы уверены, что дело не в передолбанном termcape? Можно попробовать заменить его на сервере на время. В принципе, если termcap подстраивался под этот Reflection, то это не должно было задеть xterm, но в любом случае в termcap'е куча записей для разных xterm'ов попробуйте с ними поиграться... (export TERM=xterm-xf86-v33) и так далее... На крайняк можно испробовать одну из опций в ресурсах - (sun|hp|sco)FunctionKeys, oldXTermFKeys

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру