Re: Распаковывать ZIP с русскими именами
8 сентября 2008 г. 11:45 пользователь Покотиленко Костик [EMAIL PROTECTED] написал: Это всё хорошо, а баги надо чинить... Каким образом? Как я понимаю, в zip-формате не задаётся кодировка символов имён файлов. А полагаться на угадывание -- ни есть чинить баг. В таких случая принято встраивать возможность ручного указания кодировки. Официальный костыль? Я, конечно, не против, но это не поможет людям, которым нужно просто распаковать архив, а не изучать кодировки. -- Regards, Yuri Kozlov
Re: Распаковывать ZIP с русскими именами
Victor Wagner wrote: Вопрос в том, насколько гибка поддержка виртуальных файловых систем в исполюьзуемом твоей женой GUI-шном файл-менеджере. В старом-добром mс подправить скрипт vfs/zip на основании сведений, приведенных в треде - дело получаса. Кстати, а нет ли у кого уже готового скрипта? Потому как собираюсь сейчас такое наваять (ибо достало). -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Распаковывать ZIP с русскими именами
В сообщении от 5 сентября 2008 19:52 Aleksey Cheusov написал(a): Да, пробежаться в конце тем - же convmv мне например никто не мешает, однако вот с ( как упомятул и автор изначального поста ) супругой проблемы. Ну как-то не очень ей идёт все эти командные строки :) fuse-convmvfs как вариант. Сделать папочку куда сбрасывать ваши дрянные виндозные zip-ы :-) идея, надо таки туда шлянуть -- Роя другому яму - делаешь себе холмик. -- Евгений Кащеев
Re: Распаковывать ZIP с русскими именами
В сообщении от 5 сентября 2008 18:25 Artem Chuprina написал(a): Mikhail Ramendik - debian-russian@lists.debian.org @ Thu, 4 Sep 2008 22:59:41 +0100: работы с архивами zip для любимого скриптового языка. Благо, оно для всех есть. В Tcl-ный zipvfs я сегодня уже залез. Потребовалось две строчки поправить, чтобы научить его корректно работать с любой указанной кодировкой имен файлов. Думаю что с перловым Archive::Zip то же самое будет. MR Я на перле не умею, умею на sудаффе/s питоне. Там вроде как MR есть PyZipFile. Но это ж ещё GUI рисовать. MR Странно, что нет общепринятого решения - проблема-то явно давно MR известная. Как обычно - тем, кто может поправить, оно не надо, а тех, кто не может - жаба душит. Ага, классное животное, передушило уже большую половину населения планеты :) -- Когда подумаешь, что есть настолько смелые мужчины, что смотрят в лицо женщине, подходят к ней, жмут ей руку и без ужаса говорят: Хотите... быть моей женой?, - то нельзя не удивляться тому, до чего доходит человеческая отвага. -- (Стендаль
Re: Распаковывать ZIP с русскими именами
5 сентября 2008 г. 22:56 пользователь Покотиленко Костик [EMAIL PROTECTED] написал: Так это я к чему. find dir -type f | while read f; do mv $f `echo $f | iconv -f koi8-r -t cp1251` done Ну как-то так. Это всё хорошо, а баги надо чинить... Каким образом? Как я понимаю, в zip-формате не задаётся кодировка символов имён файлов. А полагаться на угадывание -- ни есть чинить баг. -- Regards, Yuri Kozlov
Re: Распаковывать ZIP с русскими именами
00:15 Thu 04 Sep , Mikhail Ramendik написал: Всем привет! Устаовлен etch, локаль koi8-r. Супруга качает zip-ы, внутри которых файлы с русскими именами, запакованные в виндах (вероятно CP1251? или UTF8?). И ей нужно файлы распаковывать, причём желательно в GUI. И получать те же русские имена Вопрос - как бы это сделать? -- Yours, Mikhail Ramendik После распаковки convmv -r -f cp1252 -t cp850 * --notest; convmv -r -f cp866 * --notest -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Распаковывать ZIP с русскими именами
Artem Chuprina - debian-russian@lists.debian.org @ Thursday 04 September 2008: AC Evgeny Yugov - debian-russian@lists.debian.org @ Thu, 04 Sep 2008 09:53:21 +0700: AC AC EY Забыть про КОИ8-Р (как про страшный сон), заменить на CP1251 или в конце AC EY концов на UTF8 ;-) AC AC Про cp1251 надо забыть как про еще более страшный сон. Там, кстати, и AC 866 может оказаться... Мне там практически всегда CP866 и попадался. -- Sergei Stolyarov -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Распаковывать ZIP с русскими именами
,--[Vladimir Krivitsky 04/09/2008 11:01 (GMT +3) | После распаковки | convmv -r -f cp1252 -t cp850 * --notest; convmv -r -f cp866 * --notest `- На первый взляд - руки чешутся * заменить на ./* -- Best regards, Mikhail signature.asc Description: This is a digitally signed message part.
Re: Распаковывать ZIP с русскими именами
On 04/09/2008, Artem Chuprina [EMAIL PROTECTED] wrote: EY Забыть про КОИ8-Р (как про страшный сон), заменить на CP1251 или в конце EY концов на UTF8 ;-) Про cp1251 надо забыть как про еще более страшный сон. Там, кстати, и 866 может оказаться... А переход на UTF8 поможет? Если да - как перевести на UTF8 etch, который работает уже давно и вообще в своё время поднят с sarge? -- Yours, Mikhail Ramendik
Re: Распаковывать ZIP с русскими именами
On 04/09/2008, Vladimir Krivitsky [EMAIL PROTECTED] wrote: После распаковки convmv -r -f cp1252 -t cp850 * --notest; convmv -r -f cp866 * --notest Оно конечно спасибо, но супруга в командной строке не распаковывает... Ни к одному GUI распаковщику нормальная работа с такими кодировками не прикручивается? -- Yours, Mikhail Ramendik
Re: Распаковывать ZIP с русскими именами
On 2008.09.04 at 00:15:55 +0100, Mikhail Ramendik wrote: Всем привет! Устаовлен etch, локаль koi8-r. Супруга качает zip-ы, внутри которых файлы с русскими именами, запакованные в виндах (вероятно CP1251? или Ну где ты в виндовой файловой системе CP1251 видел? CP866 там. А у инфозиповского unzip-а есть дополнительная глюка. Он счтитает, что все 8-битные символы в именах файлов в zip-архиве - в какой-то определенной codepage (852 чтоли) и при распаковке перекодирует их в iso8859-1. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Распаковывать ZIP с русскими именами
Может PeaZip подойдёт? Помню как-то пользовался для удобной навигации по многогигабайтному архивчику и распаковке. Сейчас проверил, с кириллицей в архивах по дефолту не дружит. Может есть решение, не знаю. Почему говорю про него, просто достаточно функционален и с достаточно неплохим фронтендом. http://peazip.sourceforge.net/ 4 сентября 2008 г. 13:04 пользователь Mikhail Ramendik [EMAIL PROTECTED]написал: On 04/09/2008, Vladimir Krivitsky [EMAIL PROTECTED] wrote: После распаковки convmv -r -f cp1252 -t cp850 * --notest; convmv -r -f cp866 * --notest Оно конечно спасибо, но супруга в командной строке не распаковывает... Ни к одному GUI распаковщику нормальная работа с такими кодировками не прикручивается? -- Yours, Mikhail Ramendik
Re: Распаковывать ZIP с русскими именами
On 04/09/2008, Victor Wagner [EMAIL PROTECTED] wrote: On 2008.09.04 at 00:15:55 +0100, Mikhail Ramendik wrote: Всем привет! Устаовлен etch, локаль koi8-r. Супруга качает zip-ы, внутри которых файлы с русскими именами, запакованные в виндах (вероятно CP1251? или Ну где ты в виндовой файловой системе CP1251 видел? CP866 там. Ясно. А разархивировать-то в результате как? Ругаться на корректность архивирования бесполезно - нотный архив Тараканова меня не послушает. -- Yours, Mikhail Ramendik
Re: Распаковывать ZIP с русскими именами
On 2008.09.04 at 13:23:27 +0100, Mikhail Ramendik wrote: On 04/09/2008, Victor Wagner [EMAIL PROTECTED] wrote: On 2008.09.04 at 00:15:55 +0100, Mikhail Ramendik wrote: Всем привет! Устаовлен etch, локаль koi8-r. Супруга качает zip-ы, внутри которых файлы с русскими именами, запакованные в виндах (вероятно CP1251? или Ну где ты в виндовой файловой системе CP1251 видел? CP866 там. Ясно. А разархивировать-то в результате как? Ругаться на корректность Тут уже приводили несколько вариантов скрипта, который делает распаковку с перекодировкой. Вопрос в том, насколько гибка поддержка виртуальных файловых систем в исполюьзуемом твоей женой GUI-шном файл-менеджере. В старом-добром mс подправить скрипт vfs/zip на основании сведений, приведенных в треде - дело получаса. архивирования бесполезно - нотный архив Тараканова меня не послушает. -- Yours, Mikhail Ramendik Ссылки 1. mailto:[EMAIL PROTECTED] -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Распаковывать ZIP с русскими именами
Ясно. А разархивировать-то в результате как? Ругаться на корректность Интересно, если распаковывать архив на фаловой системе (например на флешке), подмонтированной с параметрами приведеными ниже - это может делу помочь ? cat /etc/fsbab ... UUID=- /mnt/flash vfat user,noauto,defaults,umask=111,dmask=000,codepage=866,iocharset=koi8-r 0 1 -- Sincerely, Nicholas -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Распаковывать ZIP с русскими именами
On 04/09/2008, Victor Wagner [EMAIL PROTECTED] wrote: Вопрос в том, насколько гибка поддержка виртуальных файловых систем в исполюьзуемом твоей женой GUI-шном файл-менеджере. В старом-добром mс подправить скрипт vfs/zip на основании сведений, приведенных в треде - дело получаса. Файлы открываются из iceweasel, который их скачивает. Использовать мы сможем что угодно, при условии, что к iceweasel можно как-то прикрутить открывание ZIP по умолчанию именно этим. Поэтому речь пока что идёт о менеджерах архивов, а не о собственно VFS. Настроенный GUI файлменеджер есть - gnome-commander (тяжеловат, но всё остальное что нашли в etch как-то странно работало). На самый крайняк, конечно, я могу сказать ей зипы не открывать, а сохранять и потом находить в gnome-commander, и прикрутить в его меню автораспаковку zip-файла в директорию с тем же именем и перекодировку. Но это именно на крайняк, поскольку добавляет ещё одну долгую операцию (поиск свежескачанного файла в списке). Мне что, самописный archive manager сочинять только ради кодировок? Я конечно могу, вывод zip парсить несложно, но это по-моему перебор. -- Yours, Mikhail Ramendik
Re: Распаковывать ZIP с русскими именами
На Thu, 4 Sep 2008 00:15:55 +0100 Mikhail Ramendik [EMAIL PROTECTED] записано: Всем привет! Устаовлен etch, локаль koi8-r. Супруга качает zip-ы, внутри которых файлы с русскими именами, запакованные в виндах (вероятно CP1251? или UTF8?). И ей нужно файлы распаковывать, причём желательно в GUI. И получать те же русские имена Вопрос - как бы это сделать? Некрасивый, но работающий, способ: https://bugzilla.altlinux.org/show_bug.cgi?id=4871 Пакет: http://lvk.cs.msu.su/~gq/debian/unzip_5.52-9etch1.1_i386.deb -- Best regards, Alexander GQ Gerasiov Contacts: e-mail:[EMAIL PROTECTED] Jabber: [EMAIL PROTECTED] Homepage: http://gq.net.ru ICQ: 7272757 PGP fingerprint: 0628 ACC7 291A D4AA 6D7D 79B8 0641 D82A E3E3 CE1D -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Распаковывать ZIP с русскими именами
В сообщении от 4 сентября 2008 05:53 Evgeny Yugov написал(a): Здравствуйте. Забыть про КОИ8-Р (как про страшный сон), заменить на CP1251 или в конце концов на UTF8 ;-) В противном случае, после распаковки пробежаться чем нибудь типа convmv... Я к примеру имею utf-8, однако зипы с русскими именами имеют cp1251. Да, пробежаться в конце тем - же convmv мне например никто не мешает, однако вот с ( как упомятул и автор изначального поста ) супругой проблемы. Ну как-то не очень ей идёт все эти командные строки :) Как временное решение, сделал её папочку, в которую она складывает все свои архивы и скриптик с иконочкой на рабочем столе, который распаковывает и прогоняет сверху convmv по всей этой папке. -- Глупость становится впереди, чтобы ее видели; ум становится позади, чтобы видеть. -- Кармен Сильва
Re: Распаковывать ZIP с русскими именами
На Thu, 04 Sep 2008 20:16:30 +0400 San_Sanych [EMAIL PROTECTED] записано: Alexander GQ Gerasiov пишет: На Thu, 4 Sep 2008 00:15:55 +0100 Mikhail Ramendik [EMAIL PROTECTED] записано: Всем привет! Устаовлен etch, локаль koi8-r. Супруга качает zip-ы, внутри которых файлы с русскими именами, запакованные в виндах (вероятно CP1251? или UTF8?). И ей нужно файлы распаковывать, причём желательно в GUI. И получать те же русские имена Вопрос - как бы это сделать? Некрасивый, но работающий, способ: https://bugzilla.altlinux.org/show_bug.cgi?id=4871 Пакет: http://lvk.cs.msu.su/~gq/debian/unzip_5.52-9etch1.1_i386.deb может проще содать у юзера в домашней директории скрипт unzip с содержанием: #!/bin/bash unzip -Z1 filename.zip | iconv -f cp1252 -t cp850 | iconv -f cp866 ну и PATH должен начинаться с $HOME/bin Извини, а что тебе даст вывод перекодированного списка имен? Более того, этот способ (с оберткой) не поможет (или будет сильно не тривиальный) в случае, когда требуется корректная работа фронтэндов (а топикстартеру это важно). -- Best regards, Alexander GQ Gerasiov Contacts: e-mail:[EMAIL PROTECTED] Jabber: [EMAIL PROTECTED] Homepage: http://gq.net.ru ICQ: 7272757 PGP fingerprint: 0628 ACC7 291A D4AA 6D7D 79B8 0641 D82A E3E3 CE1D -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Распаковывать ZIP с русскими именами
On 2008.09.04 at 16:05:34 +0100, Mikhail Ramendik wrote: Мне что, самописный archive manager сочинять только ради кодировок? Я конечно могу, вывод zip парсить несложно, но это по-моему перебор. А не надо парсить вывод zip. Нужно взять более-менее готовый модуль работы с архивами zip для любимого скриптового языка. Благо, оно для всех есть. В Tcl-ный zipvfs я сегодня уже залез. Потребовалось две строчки поправить, чтобы научить его корректно работать с любой указанной кодировкой имен файлов. Думаю что с перловым Archive::Zip то же самое будет. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Распаковывать ZIP с русскими именами
On 04/09/2008, Victor Wagner [EMAIL PROTECTED] wrote: А не надо парсить вывод zip. Нужно взять более-менее готовый модуль работы с архивами zip для любимого скриптового языка. Благо, оно для всех есть. В Tcl-ный zipvfs я сегодня уже залез. Потребовалось две строчки поправить, чтобы научить его корректно работать с любой указанной кодировкой имен файлов. Думаю что с перловым Archive::Zip то же самое будет. Я на перле не умею, умею на sудаффе/s питоне. Там вроде как есть PyZipFile. Но это ж ещё GUI рисовать. Странно, что нет общепринятого решения - проблема-то явно давно известная. -- Yours, Mikhail Ramendik
Re: Распаковывать ZIP с русскими именами
Здравствуйте. Забыть про КОИ8-Р (как про страшный сон), заменить на CP1251 или в конце концов на UTF8 ;-) В противном случае, после распаковки пробежаться чем нибудь типа convmv... Mikhail Ramendik пишет: Всем привет! Устаовлен etch, локаль koi8-r. Супруга качает zip-ы, внутри которых файлы с русскими именами, запакованные в виндах (вероятно CP1251? или UTF8?). И ей нужно файлы распаковывать, причём желательно в GUI. И получать те же русские имена Вопрос - как бы это сделать? -- Здесь могла быть ваша реклама... -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Распаковывать ZIP с русскими именами
Evgeny Yugov - debian-russian@lists.debian.org @ Thursday 04 September 2008: EY Здравствуйте. EY EY Забыть про КОИ8-Р (как про страшный сон), заменить на CP1251 или в конце EY концов на UTF8 ;-) EY В противном случае, после распаковки пробежаться чем нибудь типа convmv... Если использовать unzip, то не поможет ни convmv, ни смена локали. Гарантированно надёжный способ — это использовать для распаковки 7z, и только потом convmv. -- Sergei Stolyarov -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Распаковывать ZIP с русскими именами
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Mikhail Ramendik пишет: Всем привет! Устаовлен etch, локаль koi8-r. Супруга качает zip-ы, внутри которых файлы с русскими именами, запакованные в виндах (вероятно CP1251? или UTF8?). И ей нужно файлы распаковывать, причём желательно в GUI. И получать те же русские имена Вопрос - как бы это сделать? -- Yours, Mikhail Ramendik Помниться там для русского языка двойная перекодировка нужна. Мне помогает такой скрипт: #!/usr/bin/perl foreach $z (@ARGV) { $d = substr($z, 0, -4); $zt = `unzip -d $d $z`; @files = ($zt =~ /(?=inflating: ).*?(?=\s*$)/mg); decode_names(@files) } exit; sub decode_names { foreach $i (@_) { $new_name = `echo -n $i | iconv -f cp1252 -t cp850 | iconv -f cp866`; ($i eq $new_name) || rename($i, $new_name); print \textracted: $new_name\n; } } - -- Andrey Tataranovich public key: 0x2EE7EF82 key server: x-hkp://pgpkeys.pca.dfn.de -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAki/c4cACgkQ/icmBC7n74IuegCglAGR1wFaJnHgj7DNGCYqOzZ4 yHQAn25k2FAOIAMYrKo+Neb6X4hRXmcF =WAz5 -END PGP SIGNATURE- -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]