LINUX.ORG.RU

rar и русские имена файлов


0

0

Я думаю многие уже наталкивались на архивированные WinRAR файлы, имена которых при распаковке в linux превращаются в белеберду. Причем rar.exe из под wine распаковывает их нормально. Выяснилось, что " ls | iconv -f 866 -t utf8" показывает нормальное имя, но создание локали ru_RU.ibm866 и запуск linux rar с ней не помогает.
Очень хочется обойтись без wine. Кто-нибудь знает решение?

★★★

ну а если локаль 1251? У меня вроде работало с такой локалью

export "LC_ALL=be_BY.cp1251"
xterm -bc -cr green -bcf 700 -bcn 400 -fg yellow -bg black +sb \
-fn "-xos4-terminus-medium-r-normal--20-200-72-72-c-100-microsoft-cp1251"


а дальше в нём уже unrar. Только потом все равно нужно конвертить имя.

WerNA ★★★★★
()
Ответ на: комментарий от WerNA

cp1251 тоже пробовал, но она здесь ни при чем.
Тема закрыта, в соседнем треде обсуждение есть. Я просто не сразу заметил.

kenneth ★★★
() автор топика

у тебя же есть iconv и sh. перекодируй имена файлов и все. например скриптом (так себе скрипт, конечно, но работает (перекодирует файлы в текущем каталоге))

for i in *; do mv "$i" "`echo $i | iconv --from=866 --to=utf8`"; done

еще есть recode (но я его никогда не использовал).

hateful_dead
()
Ответ на: комментарий от hateful_dead

Ну и спрашивается, нафик извращаться? если уже есть нормальное средство - convmv.

anonymous
()

Установите LOCALE в ru_RU.UTF-8, и вы забудете про проблемы c rar архивами, ибо имена в них хранятся в UTF ;-)

birdie ★★★★★
()
Ответ на: комментарий от birdie

И получите геморрой со всем остальным...

anonymous
()
Ответ на: комментарий от birdie

>Установите LOCALE в ru_RU.UTF-8, и вы забудете про проблемы c rar архивами, ибо имена в них хранятся в UTF ;-)

Бобёр. Выдыхай.

имена файлов в раре хранятся или в 8-битной кодировке (под виндой получается cp866), или в 16-битной (толи UCS-2, то ли UTF-16). Вот только чем создать архив с именами в 16-битной кодировке - я не знаю. линуксовый точно не может. Кароче - недоделал рошаль.

smartly ★★★
()
Ответ на: комментарий от birdie

Вам уже ответили. Хочу только заметить, что у меня как раз utf8 и проблема совсем не в моей локали.
Точно не уверен, но обновление rar до 3.51 вроде помогло.

kenneth ★★★
() автор топика
Ответ на: комментарий от smartly

> Вот только чем создать архив с именами в 16-битной кодировке - я не знаю. линуксовый точно не может.

Что у вас не так.

Под линуксом с указанной мною локалью я не имею никаких проблем с переносом русским имен файлов в обоих направлениях (Win-Linux-Win). В Windows'e стоит WinRar 3.51, в Линуксе - 3.50.

birdie ★★★★★
()
Ответ на: комментарий от birdie

Попробую с рар-3.5 Может чего-то изменилось. Пробовал с 3.1 - рар создавал имена в 8-битной кодировке (как прочитал из ФС - так и записал в архив).

smartly ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.