|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Andrew Muhametshin 2:5020/400 09 Aug 2005 16:32:35 To : Alexander V. Ribchansky Subject : Re: русские имена в архивах и при просмотре SMB -------------------------------------------------------------------------------- > Как побороть проблему кракозябл в архивах *.zip *.rar в которых > содержимое с русскими именами? Как вместо кракозябл заиметь нормальные > имена? C zip'ом это решается просто: /usr/ports/russian/unzip/ А с другими архивами, можно после распаковки наслать самописанный скрип конвертации. Вот например команда только для файлов(не каталогов): ===================================== find . -type d | while read d ; do (find "$d" -type f -maxdepth 1 -execdir echo {} \; | while read f ; do mv -vi "$d/$f" "$d"/"`echo $f | iconv -f cp866`" ; done) ; done ===================================== С каталогами чуть по сложнее. ===================================== COUNT=`find . -type d |wc -l` ; \ while test -z \ "`find . -maxdepth $COUNT -mindepth $COUNT -type d -exec echo {} \;`" ;\ do COUNT=`expr $COUNT - 1` ; done ; \ while test $COUNT -gt 0 ; \ do COUNT=`expr $COUNT - 1` ; \ find . -maxdepth $COUNT -mindepth $COUNT -type d | while read dir ; do \ find "$dir" -type d -maxdepth 1 -mindepth 1 -execdir echo {} \; |\ while read dir2 ; do \ mv -i "$dir"/"$dir2" "$dir"/"`echo $dir2 | iconv -c -f cp866`" ; done ;\ done ;\ done ====================================== Работает из bash, под другими shell'ами не проверял, но думаю придется переделать. Предполагаю что можно написать и красивше, но мы чабаны простые, что умеем то и пишем. > И еще, как-то можно КДЕ 3.4.1 вправить мозги, чтоб оно корректно > отображало русские имена, когда я из konquerror'a виндовую сеть > просматриваю? Устанавливал через центр управления кодировку СР866 - ноль > эфекта... Вся проблема в libsmbclient, выше версии 3.0.11. Я решил ее так: В общем, механизм следующего я так и не понял(скорее всего это баг) - тем не менее, у меня работает так: ================================================== Самбу запускаем с именем конфиг-файла отличным от стандартного - например: (samba_config="/usr/local/etc/samba.conf" в /etc/rc.conf.local) - с такими записями: ----------- display charset = UTF-8 unix charset = KOI8-R ----------- Иначе виндовс не видит русских. Hо в этом случае, не видит русских libsmbclient, поэтму: в стандартном файле(smb.conf - на который ориентируется libsmbcient) оставляем только секцию [global] - где меняем кодировку местами: ----------- display charset = KOI8-R unix charset = UTF-8 ------------ И в этом случае libsmbclient нормально будет отображать русские в konqueror'е ====================================================== Как то это через одно место - но всё же, другого выхода я пока не нашел. У кого на этот счет есть мысли, комментарии, etc?.. А.М. --- ifmail v.2.15dev5.3 * Origin: АHО "Доброхот" (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.unix.bsd/5424977a6964.html, оценка из 5, голосов 10
|