Отправляет email-рассылки с помощью сервиса Sendsay

zip + русские имена файлов + linux = ?

Здравствуйте!

Уже в который раз замечаю такую проблему: если я скачиваю или получаю по
почте (я так понимаю, способ получения файла из сети тут неважен) некий
файл, являющийся zip-архивом и содержащий внутри файл с названием на
русском языке, то при разархивировании (unzip file.zip) русское название
превращается в такие извратные иероглифы, что никакой iconv исправить не
может. Например, сегодня название одного из полученных таким образом
файлов выглядело примерно так: "lecture01 (дъСыя EтE тяс МА
ЯАыу. НЯяG ЯАыу).doc"
Я, конечно, понимаю, что называть файлы русскими именами - моветон, а
также что можно использовать другие архиваторы, но не всегда мои
пожелания к получаемым файлам учитываются... Может можно что-то сделать
с этим?

Юлия.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 25567; Возраст листа: 975; Участников: 1477
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/531217

Ответить   Juliya Valeeva Sun, 26 Mar 2006 18:49:24 +0700 (#531217)

 

Ответы:

On Sun, 26 Mar 2006 18:49:24 +0700
Juliya Valeeva <filo***@f*****.ru> wrote:

Я могу ошибаться, но, по-моему, это не лечится.

Ответить   Mon, 27 Mar 2006 03:06:36 +0600 (#531353)

 

В сообщении от 27 марта 2006 01:06 Dmitry V. Balabanov
написал(a):

Замечательно лечится. Надо взять версию zip посвежей.

Ответить   "Sergey B. Khvatov" Mon, 27 Mar 2006 11:10:25 +0400 (#531452)

 

Juliya Valeeva wrote:

wget http://ftp.info-zip.org/pub/infozip/src/unzip552.tar.gz

Находим в инете патч для unzip
(http://cvsup.pt.freebsd.org/cgi-bin/cvsweb/cvsweb.cgi/~checkout~/ports/russian/unzip/files/patch-ebcdic.h?rev=1.1&content-type=text/plain)
или копируем нижеприведённый текст

[rubystar@starlfs:~]$ cat patch-ebcdic.h

ebcdic.h.orig Wed May 4 12:30:10 2005
+++ ebcdic.h Wed May 4 12:30:18 2005
@ -237,43 +237,43 @@

#ifdef IZ_ISO2OEM_ARRAY
ZCONST uch Far iso2oem[] = {
- 0x3F, 0x3F, 0x27, 0x9F, 0x22, 0x2E, 0xC5, 0xCE, /* 80 - 87 */
- 0x5E, 0x25, 0x53, 0x3C, 0x4F, 0x3F, 0x3F, 0x3F, /* 88 - 8F */
- 0x3F, 0x27, 0x27, 0x22, 0x22, 0x07, 0x2D, 0x2D, /* 90 - 97 */
- 0x7E, 0x54, 0x73, 0x3E, 0x6F, 0x3F, 0x3F, 0x59, /* 98 - 9F */
- 0xFF, 0xAD, 0xBD, 0x9C, 0xCF, 0xBE, 0xDD, 0xF5, /* A0 - A7 */
- 0xF9, 0xB8, 0xA6, 0xAE, 0xAA, 0xF0, 0xA9, 0xEE, /* A8 - AF */
- 0xF8, 0xF1, 0xFD, 0xFC, 0xEF, 0xE6, 0xF4, 0xFA, /* B0 - B7 */
- 0xF7, 0xFB, 0xA7, 0xAF, 0xAC, 0xAB, 0xF3, 0xA8, /* B8 - BF */
- 0xB7, 0xB5, 0xB6, 0xC7, 0x8E, 0x8F, 0x92, 0x80, /* C0 - C7 */
- 0xD4, 0x90, 0xD2, 0xD3, 0xDE, 0xD6, 0xD7, 0xD8, /* C8 - CF */
- 0xD1, 0xA5, 0xE3, 0xE0, 0xE2, 0xE5, 0x99, 0x9E, /* D0 - D7 */
- 0x9D, 0xEB, 0xE9, 0xEA, 0x9A, 0xED, 0xE8, 0xE1, /* D8 - DF */
- 0x85, 0xA0, 0x83, 0xC6, 0x84, 0x86, 0x91, 0x87, /* E0 - E7 */
- 0x8A, 0x82, 0x88, 0x89, 0x8D, 0xA1, 0x8C, 0x8B, /* E8 - EF */
- 0xD0, 0xA4, 0x95, 0xA2, 0x93, 0xE4, 0x94, 0xF6, /* F0 - F7 */
- 0x9B, 0x97, 0xA3, 0x96, 0x81, 0xEC, 0xE7, 0x98 /* F8 - FF */
+ 0xC4, 0xB3, 0xDA, 0xBF, 0xC0, 0xD9, 0xC3, 0xB4, /* 80 - 87 */
+ 0xC2, 0xC1, 0xC5, 0xDF, 0xDC, 0xDB, 0xDD, 0xDE, /* 88 - 8F */
+ 0xB0, 0xB1, 0xB2, 0x40, 0xFE, 0xF9, 0xFB, 0x40, /* 90 - 97 */
+ 0x66, 0x02, 0xFF, 0x0D, 0xF8, 0x02, 0xFA, 0x0D, /* 98 - 9F */
+ 0xCD, 0xBA, 0xD5, 0xF1, 0xD6, 0xC9, 0xB8, 0xB7, /* A0 - A7 */
+ 0xBB, 0xD4, 0xD3, 0xC8, 0xBE, 0xBD, 0xBC, 0xC6, /* A8 - AF */
+ 0xC7, 0xCC, 0xB5, 0xF0, 0xB6, 0xB9, 0xD1, 0xD2, /* B0 - B7 */
+ 0xCB, 0xCF, 0xD0, 0xCA, 0xD8, 0xD7, 0xCE, 0xBF, /* B8 - BF */
+ 0xEE, 0xA0, 0xA1, 0xE6, 0xA4, 0xA5, 0xE4, 0xA3, /* C0 - C7 */
+ 0xE5, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, /* C8 - CF */
+ 0xAF, 0xEF, 0xE0, 0xE1, 0xE2, 0xE3, 0xA6, 0xA2, /* D0 - D7 */
+ 0xEC, 0xEB, 0xA7, 0xE8, 0xED, 0xE9, 0xE7, 0xEA, /* D8 - DF */
+ 0x9E, 0x80, 0x81, 0x96, 0x84, 0x85, 0x94, 0x83, /* E0 - E7 */
+ 0x95, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, /* E8 - EF */
+ 0x8F, 0x9F, 0x90, 0x91, 0x92, 0x93, 0x86, 0x82, /* F0 - F7 */
+ 0x9C, 0x9B, 0x87, 0x98, 0x9D, 0x99, 0x97, 0x9A, /* F8 - FF */
};
#endif /* IZ_ISO2OEM_ARRAY */

#ifdef IZ_OEM2ISO_ARRAY
ZCONST uch Far oem2iso[] = {
- 0xC7, 0xFC, 0xE9, 0xE2, 0xE4, 0xE0, 0xE5, 0xE7, /* 80 - 87 */
- 0xEA, 0xEB, 0xE8, 0xEF, 0xEE, 0xEC, 0xC4, 0xC5, /* 88 - 8F */
- 0xC9, 0xE6, 0xC6, 0xF4, 0xF6, 0xF2, 0xFB, 0xF9, /* 90 - 97 */
- 0xFF, 0xD6, 0xDC, 0xF8, 0xA3, 0xD8, 0xD7, 0x83, /* 98 - 9F */
- 0xE1, 0xED, 0xF3, 0xFA, 0xF1, 0xD1, 0xAA, 0xBA, /* A0 - A7 */
- 0xBF, 0xAE, 0xAC, 0xBD, 0xBC, 0xA1, 0xAB, 0xBB, /* A8 - AF */
- 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xC1, 0xC2, 0xC0, /* B0 - B7 */
- 0xA9, 0xA6, 0xA6, 0x2B, 0x2B, 0xA2, 0xA5, 0x2B, /* B8 - BF */
- 0x2B, 0x2D, 0x2D, 0x2B, 0x2D, 0x2B, 0xE3, 0xC3, /* C0 - C7 */
- 0x2B, 0x2B, 0x2D, 0x2D, 0xA6, 0x2D, 0x2B, 0xA4, /* C8 - CF */
- 0xF0, 0xD0, 0xCA, 0xCB, 0xC8, 0x69, 0xCD, 0xCE, /* D0 - D7 */
- 0xCF, 0x2B, 0x2B, 0xA6, 0x5F, 0xA6, 0xCC, 0xAF, /* D8 - DF */
- 0xD3, 0xDF, 0xD4, 0xD2, 0xF5, 0xD5, 0xB5, 0xFE, /* E0 - E7 */
- 0xDE, 0xDA, 0xDB, 0xD9, 0xFD, 0xDD, 0xAF, 0xB4, /* E8 - EF */
- 0xAD, 0xB1, 0x3D, 0xBE, 0xB6, 0xA7, 0xF7, 0xB8, /* F0 - F7 */
- 0xB0, 0xA8, 0xB7, 0xB9, 0xB3, 0xB2, 0xA6, 0xA0 /* F8 - FF */
+ 0xE1, 0xE2, 0xF7, 0xE7, 0xE4, 0xE5, 0xF6, 0xFA, /* 80 - 87 */
+ 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, /* 88 - 8F */
+ 0xF2, 0xF3, 0xF4, 0xF5, 0xE6, 0xE8, 0xE3, 0xFE, /* 90 - 97 */
+ 0xFB, 0xFD, 0xFF, 0xF9, 0xF8, 0xFC, 0xE0, 0xF1, /* 98 - 9F */
+ 0xC1, 0xC2, 0xD7, 0xC7, 0xC4, 0xC5, 0xD6, 0xDA, /* A0 - A7 */
+ 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, /* A8 - AF */
+ 0x90, 0x91, 0x92, 0x81, 0x87, 0xB2, 0xB4, 0xA7, /* B0 - B7 */
+ 0xA6, 0xB5, 0xA1, 0xA8, 0xAE, 0xAD, 0xAC, 0x83, /* B8 - BF */
+ 0x84, 0x89, 0x88, 0x86, 0x80, 0x8A, 0xAF, 0xB0, /* C0 - C7 */
+ 0xAB, 0xA5, 0xBB, 0xB8, 0xB1, 0xA0, 0xBE, 0xB9, /* C8 - CF */
+ 0xBA, 0xB6, 0xB7, 0xAA, 0xA9, 0xA2, 0xA4, 0xBD, /* D0 - D7 */
+ 0xBC, 0x85, 0x82, 0x8D, 0x8C, 0x8E, 0x8F, 0x8B, /* D8 - DF */
+ 0xD2, 0xD3, 0xD4, 0xD5, 0xC6, 0xC8, 0xC3, 0xDE, /* E0 - E7 */
+ 0xDB, 0xDD, 0xDF, 0xD9, 0xD8, 0xDC, 0xC0, 0xD1, /* E8 - EF */
+ 0xB3, 0xA3, 0x90, 0x91, 0x92, 0x93, 0x86, 0x82, /* F0 - F7 */
+ 0x9C, 0x95, 0x9E, 0x96, 0x9D, 0x99, 0x94, 0x9A, /* F8 - FF */
};
#endif /* IZ_OEM2ISO_ARRAY */

Далее будем патчить и компилировать...

$ tar xzf unzip552.tar.gz
$ cp patch-ebcdic.h unzip552
$ cd unzip552
$ patch -Np0 -i patch-ebcdic.h
$ cp unix/Makefile .
$ make generic
$ su -c 'make install'

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

-- Всего хорошего, Юлия!
С уважением, Дмитрий

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 25584; Возраст листа: 976; Участников: 1480
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/531406

Ответить   Mon, 27 Mar 2006 09:51:21 +0600 (#531406)

 

Здравствуйте!

saturas wrote:

О, спасибо большое, всё действительно получилось :)

Юлия.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 25595; Возраст листа: 976; Участников: 1480
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/531580

Ответить   Juliya Valeeva Mon, 27 Mar 2006 20:59:30 +0700 (#531580)

 

Juliya Valeeva wrote:

:-) Да не за что, обращайтесь, если что :-))))))))))))

Ответить   Mon, 27 Mar 2006 21:34:07 +0600 (#531604)

 

26 марта 2006 18:51 у saturas было написано:

Вот что получается у меня (точнее что-то не получается):
$ tar xzf unzip552.tar.gz
$ cp patch-ebcdic.h unzip-5.52/
$ cd unzip-5.52/
$ patch -Np0 -i patch-ebcdic.h
patch: **** Only garbage was found in the patch input.
???

Ответить   Tue, 28 Mar 2006 00:17:22 -0900 (#531709)

 

Здравствуйте!

Valery Kotelnikov wrote:

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

Юлия.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 25626; Возраст листа: 977; Участников: 1480
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/531880

Ответить   Juliya Valeeva Tue, 28 Mar 2006 19:53:27 +0700 (#531880)