- Работа с русскими именами файлов в ZIP и UNZIP под nix, Natrio, 23:16 , 30-Ноя-10 (1)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, iZEN, 02:25 , 01-Дек-10 (5)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Natrio, 08:36 , 01-Дек-10 (7)
Многие уже пробовали "закинуть" подобные патчи в мэйнстрим Info-ZIP, но их либо отклоняли, либо удаляли в следующей версии. Разработчики Info-ZIP занимаются новой версией формата, рассматривая его как предпочтительный. Авторам же патчей ZIP требуется лишь для совместимости, а для всего остального у них есть другие архиваторы. Взаимопонимания в такой ситуации достичь сложно. Тем более с моим английским ;)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, john, 11:17 , 01-Дек-10 (9)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Natrio, 11:27 , 01-Дек-10 (10)
Оригинальные unzip и zipinfo, будучи собранными с опциями по умолчанию, при выводе в консоль заменяю вопросительными знаками всё, что выходит на пределы ASCII. Есть опция NO_SETLOCALE, которая снимает блокировку, и в моём патче эта опция включена. Оригинальный zip при упаковке файлов выводит их имена в консоль в кодировке архива, то есть неправильно. В моём патче это исправлено, и имена выводятся в консоль без изменений.
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Natrio, 11:39 , 01-Дек-10 (11)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, sanek, 15:04 , 12-Дек-10 (33)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Аноним, 23:35 , 30-Ноя-10 (2)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Natrio, 08:28 , 01-Дек-10 (6)
Я очень благодарен авторам патчей из AltLinux, и я дал ссылки на оригинал. Однако мне пришлось добавить кое-что от себя, чтобы zip и unzip не только правильно обрабатывали файлы, но и правильно выводили имена в консоли. В тексте даны уже мои патчи, сделанные на основе оригинальных.
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Anonym, 00:04 , 01-Дек-10 (3)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, iZEN, 02:24 , 01-Дек-10 (4)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Natrio, 08:49 , 01-Дек-10 (8)
Я могу отказаться от ZIP, но не могу заставить отказаться от него тех, кто приносит/присылает/выкладывает такие архивы, а также тех, у кого никакие другие просто не откроются. ZIP нужен именно для этого.
- Работа с русскими именами файлов в ZIP и UNZIP под nix, vovans, 21:51 , 02-Дек-10 (22)
- Работа свиндовскими именами файлов в ZIP и UNZIP под nix, Andrey Mitrofanov, 14:08 , 01-Дек-10 (13)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Natrio, 14:45 , 01-Дек-10 (14)
Нет, у 7z со своими и раровскими архивами всё нормально. А вот зип он распаковывает своеобразно – имена в кодировке cp866, но с лишним левым байтом перед каждым символом.Но это всё костыли. Я перед тем, как занялся патчами, сам соорудил два работающих скрипта – один для переименования после распаковки, другой с распаковкой через трубу и сохранение в файле с перекодированным именем. Первый вариант требует заранее подготовить пустой каталог (а в норме unzip распаковывает файлы в любой), второй вариант сопровождается потерей всех даты и времени всех файлов, что тоже не всегда хорошо. И оба совершенно негибкие.
- Работа свиндовскими именами файлов в ZIP и UNZIP под nix, Natrio, 15:48 , 01-Дек-10 (15)
По уточнённым данным, 7z (p7zip) под Linux начинает распаковывать zip–архивы в неискаженной кодировке cp866, если указать ему ключ -no-utf16 или установить переменную LC_CTYPE в любое значение, отличное от пустой строки.
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Аноним, 06:37 , 02-Дек-10 (17)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, мше, 08:53 , 02-Дек-10 (18)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Natrio, 09:18 , 02-Дек-10 (19)
Чем именно не распаковывается? Последнее время появилась новая модификация архивов .rar, и для их распаковки нужна новая версия unrar. Если вы пользуетесь p7zip, то в него она включена, кажется, с 9й версии. Не спрашивайте меня, зачем разработчики winrar это сделали – вопрос к ним :) Но к кодировкам всё это отношения не имеет. Не буду говорить за всех, но с 9й версией p7zip у меня не возникает проблем с распаковкой созданных в Windows .rar и .7z архивов, а созданные им под Linux архивы .7z нормально открываются 7zip под Windows.
- Работа с русскими именами файлов в ZIP и UNZIP под nix, fank, 13:10 , 02-Дек-10 (20)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, StrangeAttractor, 23:51 , 07-Дек-10 (26)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, ананим, 23:54 , 08-Дек-10 (27)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, autopilot, 11:47 , 10-Дек-10 (28)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, prof_alex, 01:57 , 11-Дек-10 (30)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Natrio, 09:52 , 11-Дек-10 (31)
Чуть выше я уже писал, что unzip/zipinfo, собранный без опции NO_SETLOCALE, при выводе в консоль заменяет все не-ASCII символы вопросительными знаками. Мой патч к unzip http://pda.opennet.ru/soft/zip_rus/unzip60-natspec-mod.diff.gz как раз и отличается от альтовского патча включением этой опции. Другой способ её включить – задать для сборки unzip переменную окружения LOCAL_UNZIP="-DNO_SETLOCALE" Опции -I и -O нужны ТОЛЬКО для случаев, когда вам требуется задать кодировки отличные от тех, что выдаёт natspec. Если кодировка архива совпадает с определённой natspec DOS-кодировкой, то никаких дополнительных ключей не требуется: $ unzip -l ../test.zip Archive: ../test.zip Length Date Time Name --------- ---------- ----- ---- 0 12-03-2010 21:23 тест/ 7 12-03-2010 21:23 тест/эюя 7 12-03-2010 21:23 тест/абв 17 12-10-2010 11:49 Шах и мат.txt --------- ------- 31 4 files
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Forth, 14:55 , 12-Дек-10 (32)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Natrio, 09:14 , 13-Дек-10 (34)
Нет у меня федоры, проверить не могу. Могу подсказать следующее:1) Мой патч http://www.opennet.me/soft/zip_rus/unzip60-natspec-mod.diff.gz должен накладываться на оригинальный unzip-6.0 : ftp://ftp.info-zip.org/pub/infozip/src/unzip60.tgz 2) В моём патче включена опция NO_SETLOCALE. Если это так, она должна присутствовать в выводе команды сборки. То есть, после make -f unix/Makefile generic_gcc в выводе должно часто присутствовать -DNO_SETLOCALE Если нет – значит сборка идёт как-то неправильно, или наложенный патч – не мой. 3) После сборки с моим патчем unzip устанавливается в /usr/bin/ Возможно, у вас уже установлена другая версия в /usr/local/bin/ , которая обычно имеет более высокий приоритет в переменной $PATH. Если это так, то одна из версий явно лишняя.
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Natrio, 09:17 , 13-Дек-10 (35)
4) Вопросики только в консоли? Имена распакованных файлов правильные?
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Yo, 13:56 , 13-Дек-10 (36)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Natrio, 08:43 , 14-Дек-10 (37)
Не получится. 1) Непатченный unzip/zipinfo выводит имена с перекодировкой cp850 => cp1252. Поэтому в вашем примере надо сначала обратить её, а потом уже переводить из cp866 : iconv -f cp1252 -t cp850 | iconv -f cp866 подробности в статье выше.2) Во многих дистрибутивах unzip/zipinfo собран БЕЗ опции NO_SETLOCALE, и потому будет выводить в консоль все имена в виде "?????". Перекодировка после этого, естественно, уже невозможна.
- Работа с русскими именами файлов в ZIP и UNZIP под nix, pva0xd, 17:38 , 23-Дек-10 (39)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Natrio, 12:55 , 24-Дек-10 (41)
Опция -K обратна опции -k, то есть отключает "dosify". Умолчание изменено для совместимости с win-програмами. В частности, TotalCоmmander не видит русских имён файлов, если архив упакован БЕЗ опции dosify.
- Работа с русскими именами файлов в ZIP и UNZIP под nix, RUR, 12:51 , 24-Дек-10 (40)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Natrio, 13:01 , 24-Дек-10 (42)
Я начинал именно с таких скриптов, только получаются они очень неуклюжими. Кроме того, zipinfo, будучи собранным без дополнительных опций (у меня так и было), НЕ ВЫВОДИТ русские имена в консоль, заменяя их на ?????, то есть эти скрипты на половине систем не будут работать без пересборки пакета unzip. А если уж пересобирать, то я решил лучше пропатчить и больше не мучаться со скриптами.
- Работа с русскими именами файлов в ZIP и UNZIP под nix, lucentcode, 01:49 , 07-Апр-11 (43) –1
- Раздел полезных советов: Работа с русскими именами файлов в ..., aleks, 23:13 , 03-Мрт-12 (45)
- Раздел полезных советов: Работа с русскими именами файлов в ..., Ю.Т., 13:37 , 15-Дек-12 (50)
- Раздел полезных советов: Работа с русскими именами файлов в ..., Natrio, 14:05 , 15-Дек-12 (51)
Не так уж всё и сложно :)Что касается "сопровождения", то дистрибутивы, как правило, позволяют собирать не только вручную, но и собирать пакеты, или подключать сторонние репозитории. После установки пакетов их "сопровождение" ничем не отличается от всех прочих, а работа с ними – от работы со оригинальными zip и unzip, независимо от программ, которые их вызывают. Для себя в ArchLinux я собрал пакеты, заменяющие zip и unzip, и положил в AUR: http://aur.archlinux.org/packages/zip-natspec/ http://aur.archlinux.org/packages/unzip-natspec/ Для Убунты (к Дебиану тоже подходят) мои пакеты собрали без меня :) http://launchpad.net/~frol/+archive/zip-i18n Насчёт других дистров не знаю, но в случае чего можно поступить аналогично. А кодировку libnatspec определяет самостоятельно, на основе языка локали. Если запустить с другой локалью, будет выбрана другая кодировка. Юникодные архивы альтернативного формата infozip будут распаковываться как обычно, на это патчи не влияют.
- Работа с русскими именами файлов в ZIP и UNZIP под nix, uropb, 15:45 , 21-Янв-15 (54)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, x230, 16:47 , 21-Июн-20 (55)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Аноним, 17:01 , 23-Июн-20 (56)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Лев, 18:30 , 05-Сен-20 (57)
- Работа с русскими именами файлов в ZIP и UNZIP под nix, Аноним, 14:48 , 12-Окт-20 (58)
|