Автор Тема: Кирилица за напреднали (encoding interoperability)  (Прочетена 4274 пъти)

RABBIT

  • Участници
  • ***
  • Публикации: 6
    • Профил
Не съм сигурен че това е правилния раздел но нейсе. Имам три работни машини - два линукса и един XP.

Единия линукс няма X, конзолата е нагласена да работи на CP1251 (посредством console-cyrillic) както и samba-та която чете/пише файлове в 1251.

Втория линукс е чист en_US.ISO-8859-1 под конзола и UTF-8 под KDE (добавил съм нужните envvars в Autostart). Знам че е грозно решение, но често се налага да работя под чиста конзола и не моа да си позволя потрошено mc '<img'> Файлов сървър - под UTF-8.

Цялата тази цапаница създава два неприятни проблема:
1. Не мога да ползвам пълноценно ssh м/у двата линукса, тъй като (поне доколкото знам) ssh няма опция за character encoding translation за разлика от putty например. В резултат каква да е кирилица се осакатява.
2. Докато уиндоуса нормално вижда файловите имена и от двете машини, smbmount не се справя в коя да е посока. Добавяйки опция nls=utf8 или nls=cp1251 респективно не променя нищо.

По принцип най логичния вариант е да прехвърля първата машина в Unicode режим, но тъй като тя е само конзолна всички slang базирани приложения се побъркват (в моя случай mc и centericq). Имената на файловете на втората машина не позволяват преминаване към 1251 (не са само ASCII/Кирилица)

Надявам се че съм описал достатъчно добре положението. Ако има някаква хитринка хем вълка да е сит хем агнетата да са в ред - споделете '<img'>

<редакция>
Забравих да спомена - и двата линукса са Debian Sid, без framebuffer (ако изобщо има някакво значение)
Активен

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
Кирилица за напреднали (encoding interoperability)
« Отговор #1 -: Jan 01, 2006, 01:05 »
Midnight Commander-а вече може да работи с UTF-8!
За подробности:
http://linux-bg.org/cgi-bin/ib3/ikonboard.cgi?act=ST;f=12;t=7470

Още за кирилицата:
http://vstoykov.hit.bg/linuxdoc/bg-howto/
Активен

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
Кирилица за напреднали (encoding interoperability)
« Отговор #2 -: Jan 01, 2006, 01:11 »
Относно smbmount/smbumount - пробвай с параметри:
-o codepage=cp866 -o iocharset=utf8
или
-o codepage=cp866,iocharset=utf8,guest

Ако не става:
-o codepage=cp855 -o iocharset=utf8
или
-o codepage=cp855,iocharset=utf8,guest

Това са настройки за FAT32. За ntfs предполагам, че няма нужда от codepage (само iocharset=utf8), но не съм сигурен...

Много е важно да знаеш как си настроил кодирането на кратките имена - cp855 или cp866! За подробности:
http://injinera.bgplus.com/wxp/xp_bul2.htm
http://injinera.bgplus.com/SerbianCyr/serbian.htm
Активен

RABBIT

  • Участници
  • ***
  • Публикации: 6
    • Профил
Кирилица за напреднали (encoding interoperability)
« Отговор #3 -: Jan 01, 2006, 01:24 »
Идеята с пачнатото mc не ме блазни - твърде много хора се оплакват из google от пачнат slang. Плюс машината е pure-64 което потенциално може да доведе до още повече проблеми (леко променени библиотеки). А малко неща са по зле от забиващ OFM (orthdox file manager).
За smbmount - ставаше въпрос от линукс към линукс, XP-то е просто пример как "всичко работи" '<img'> Както и да е - с исползването на iocharset И codepage всичко върви (не прави много смисъл но върви).
Остава последния проблем - ssh транслация. Ако и това даде акъл някой - халал да му е '<img'>
Активен

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
Кирилица за напреднали (encoding interoperability)
« Отговор #4 -: Jan 01, 2006, 11:26 »
Ако ти прави проблем slang ще ти прави проблем само с mc, защото няма да компилираш други програми със закърпената версия на slang.
Аз в момента съм инсталирал и двете версии на slang:

Примерен код

valentin@darkstar:~$ ls /var/log/packages/slang*
/var/log/packages/slang-1.4.9-i486-1
/var/log/packages/slang_utf8-1.4.9-i486-vs1
valentin@darkstar:~


valentin@darkstar:~$ cat /var/log/packages/slang_utf8-1.4.9-i486-vs1  | grep usr/lib
usr/lib/
usr/lib/libslang-utf8.a
usr/lib/libslang-utf8.so.1.4.9
valentin@darkstar:~$

valentin@darkstar:~$ cat /var/log/scripts/slang_utf8-1.4.9-i486-vs1
( cd usr/lib; rm -rf libslang-utf8.so.1 )
( cd usr/lib; ln -sf libslang-utf8.so.1.4.9 libslang-utf8.so.1 )
( cd usr/lib; rm -rf libslang-utf8.so )
( cd usr/lib; ln -sf libslang-utf8.so.1.4.9 libslang-utf8.so )
valentin@darkstar:~$

valentin@darkstar:~$ ls /usr/lib/libslang* -la
-rw-r--r--  1 root root 531898 2003-06-06 03:41 /usr/lib/libslang.a
lrwxrwxrwx  1 root root     17 2005-12-11 14:44 /usr/lib/libslang.so -> libslang.so.1.4.9*
lrwxrwxrwx  1 root root     17 2005-12-11 14:44 /usr/lib/libslang.so.1 -> libslang.so.1.4.9*
-rwxr-xr-x  1 root root 371576 2003-06-06 03:41 /usr/lib/libslang.so.1.4.9*
-rw-r--r--  1 root root 539232 2005-10-16 20:43 /usr/lib/libslang-utf8.a
lrwxrwxrwx  1 root root     22 2005-12-11 14:43 /usr/lib/libslang-utf8.so -> libslang-utf8.so.1.4.9
lrwxrwxrwx  1 root root     22 2005-12-11 14:43 /usr/lib/libslang-utf8.so.1 -> libslang-utf8.so.1.4.9
-rw-r--r--  1 root root 463260 2005-10-16 20:43 /usr/lib/libslang-utf8.so.1.4.9
valentin@darkstar:~$


Както виждаш името на файла на закърпения slang се различава значително от оригиналния и е много трудно някоя програма да се обърка и да ре ши да ползва грешния slang.
Активен

rpetrov

  • Напреднали
  • *****
  • Публикации: 571
    • Профил
    • WWW
Кирилица за напреднали (encoding interoperability)
« Отговор #5 -: Jan 03, 2006, 17:33 »
Цитат (RABBIT @ Ян. 01 2006,00:27)
Не съм сигурен че това е правилния раздел но нейсе. Имам три работни машини - два линукса и един XP.

Единия линукс няма X, конзолата е нагласена да работи на CP1251 (посредством console-cyrillic) както и samba-та която чете/пише файлове в 1251.

Инсталирай X window и го ползвай отдалечено, било то чрез отдалечено стартиране на X програми, било то X-forwarding през ssh.
Бел.: Не е нужно да се конфигурира X window на host-та!

Цитат (RABBIT @ Ян. 01 2006,00:27)
Втория линукс е чист en_US.ISO-8859-1 под конзола и UTF-8 под KDE (добавил съм нужните envvars в Autostart). Знам че е грозно решение, но често се налага да работя под чиста конзола и не моа да си позволя потрошено mc '<img'> Файлов сървър - под UTF-8.

Цялата тази цапаница създава два неприятни проблема:
1. Не мога да ползвам пълноценно ssh м/у двата линукса, тъй като (поне доколкото знам) ssh няма опция за character encoding translation за разлика от putty например. В резултат каква да е кирилица се осакатява.

За OpenSSH не е нужно да има ':xclam:'
- настройва се openssh сървера да приема променливи за обкръжението от клиента.
- стартира се терминал в подходящата кодова таблица, например "LANG=bg_BG.UTF-8 konsole"
- установява се ssh сесия, като се указва да изпрати на сървера необходимите променливи (в случая LANG)
За подводните камъни виж Locale environment passing in ssh sessions
Цитат (RABBIT @ Ян. 01 2006,00:27)

2. Докато уиндоуса нормално вижда файловите имена и от двете машини, smbmount не се справя в коя да е посока. Добавяйки опция nls=utf8 или nls=cp1251 респективно не променя нищо.

По принцип най логичния вариант е да прехвърля първата машина в Unicode режим, но тъй като тя е само конзолна всички slang базирани приложения се побъркват (в моя случай mc и centericq). Имената на файловете на втората машина не позволяват преминаване към 1251 (не са само ASCII/Кирилица)

Надявам се че съм описал достатъчно добре положението. Ако има някаква хитринка хем вълка да е сит хем агнетата да са в ред - споделете '<img'>

<редакция>
Забравих да спомена - и двата линукса са Debian Sid, без framebuffer (ако изобщо има някакво значение)


Не знам Debian Sid, кои програми за getty ползва, но си е жива мъка мъка да се работи с няколко кодови таблици на vt1-6. Незнам дали някоя от възможните getty програми позволява независимо настройване на шрифтовете на текстовите терминали.

След като може да се пуснат няколко "X Terminal"-ни програми в различни кодова таблици, като това работи безпроблемно и не си пречат една на друга, не виждам защо трябва да се мъчиш с текстовите терминали.
Активен

RABBIT

  • Участници
  • ***
  • Публикации: 6
    • Профил
Кирилица за напреднали (encoding interoperability)
« Отговор #6 -: Jan 05, 2006, 10:47 »
Благодаря за съветите.
X window идеята не е особенно приложима именно защото всеки клиент трябва да има налична графична среда (мога ли да седна да нагласям X window навсякъде откъдето ми скимне да се логна).
За разлика от това хитринката с AcceptEnv е много напред, въобще не ми дойде на акъла да прегледам документацията на сървъра.
FYI: Debian Sarge (може и по ранни) позволява независима настройка на шрифтове и charsets за всеки отделент VC в /etc/console-tools/config, независимо от това какъв getty вариант ползваш.

Аз обаче имам още един въпрос - защо един и същ непачнат mc binary се държи различно под VC и Xterm със един и същ LC_*? В смисъл под VC със активиран utf-mode и с правилен шрифт всички line drawing символи исчезват, докато под xterm със същия ENV показва както и текст в unicode така и не разваля line drawing. Откъде този ефект?
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
default encoding in KDE
Настройка на програми
rat 4 2766 Последна публикация Sep 18, 2003, 17:23
от alabal
Sqwebmail encoding problem
Настройка на програми
desinikolova 3 2451 Последна публикация Mar 13, 2005, 22:08
от rpetrov
UTF-8 и URL encoding (x-www-form-urlencoded)
Web development
vstoykov 10 5342 Последна публикация Apr 10, 2006, 21:23
от vstoykov
Encoding-a в apache2 ?
Web development
aReS 5 3258 Последна публикация Mar 09, 2006, 01:17
от steady
Encoding
Живота, вселената и някакви други глупости
luda_glawa 19 7204 Последна публикация Oct 26, 2006, 02:36
от SOMNIVM