LINUX.ORG.RU

zip + русские буквы


0

0

Иногда приходится распаковывать zip архивы, созданные в винде и содержащие файлы с русскими буквами, так вот эти файлы распаковываются нормально, но вместо исходных русских имен у них какая-то абракадабра. Приходитсяя вручную переименовывать (причем с помощью mc, т.к. для mv нужно указать имя файла, а там непечатаемые символы, незнаю как набрать на клаве).

Можно ли как-нибудь распаковать без проблем такие архивы?

P.S. (за неимением виндовса, не могу сам проверить) Подскажите пожалста, с tar есть такая проблемка? Он как имена файлов складирует - в юникоде или нет? Если я сделаю tar.gz, в котором будут русскоименные файлы, на виндовсе это дело распакуется нормально? а наоборот? Rar и 7z, наскока я знаю в юникоде складируют, так что там все в порядке.


Ответ на: комментарий от iZEN

> Надо использовать unzip-iconv вместо unzip.

В гугле нашел только одноименный патч, без патч+пересборки никак нельзя?

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

Можно попробовать после распаковки использовать convmv.

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

>> Надо использовать unzip-iconv вместо unzip.
> В гугле нашел только одноименный патч, без патч+пересборки никак нельзя?


Можно. Установи PC-BSD и затем сделай:
% pkg_add -r ru-unzip

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

> спасибо, работает )

Спрашивай ещё. Может подскажу короткий путь.

iZEN ★★★★★
()

> P.S. (за неимением виндовса, не могу сам проверить) Подскажите пожалста, с tar есть такая проблемка? Он как имена файлов складирует - в юникоде или нет? Если я сделаю tar.gz, в котором будут русскоименные файлы, на виндовсе это дело распакуется нормально? а наоборот? Rar и 7z, наскока я знаю в юникоде складируют, так что там все в порядке.

AFAIR, tar-у побоку на имена файлов. В какой кодировке они у вас хранятся - в той и запихает. А это чаще всего UTF-8 (ныне), либо KOI8-R (ранее). Под оффтопиком имена хранятся в кодировке CP866, и если архиватор не обучен специально, то ты из UTF-8 на выходе получишь крякозябры. Для интеробмена Unix<->Windows, самое лучшее - 7zip, либо имена держать в ASCII (я так делаю).

http://freesource.info/wiki/Lokalizacija/SituacijaSArxivatorami

Вот тут развернуто.

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

>самое лучшее - 7zip, либо имена держать в ASCII (я так делаю).

На самом деле и с rar и tar проблем вроде нет.

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

Спасиб. Патчик хороший, пересобрал слакбилд, теперь распаковывается (unzip -O CP866) без кракозябр :) Хотя патч для unzip-5.50, к 5.52 тоже подошел.

paxac
() автор топика

convmv --notest -r -f cp-1252 -t cp-850 /path/to/unzipped/files
convmv --notest -r -f cp-866 -t utf-8 /path/to/unzipped/files

У меня работает. Только не спрашивай, почему такие кривые кодировки, я не знаю.

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

> У меня работает. Только не спрашивай, почему такие кривые кодировки, я не знаю.

По ссылке пройди, там все написано :)

undertaker ★★
()

ArchLinux, unzip 5.52, кракозябров нет, ЧЯДНТ? :)

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