[Comm] platform5: unrar + ark

Anton Moiseev benderamp на gmail.com
Ср Окт 21 19:47:05 UTC 2009


2009/10/19 Андрей Черепанов <cas на altlinux.ru>

> 19 октября 2009 Anton Moiseev написал:
> > > > 2. Запаковка zip-архива с русскими файлами/директориями из линукса и
> > > > последующее его корректное открытие в винде.
> > >
> > > Откроется штатными средствами Windows, WinZip и 7Zip. В быдлоподелке
> > > русского
> > > ынтырпрайза WinRAR откроется с кривым именем.
> >
> > Вот кстати интересно, что вообще происходит с кодировками имен файлов
> >  внутри зип-архивов и почему в век победившего юникода мы все еще
> огребаем
> >  такие проблемы, которые должны были остаться еще в конце 90х.
> >
> > Создал zip-архив с русскими именами в p5
> > 1. В p5 открывается корректно
> > 2. В windows штатным средством (compressed folders) открывается корректно
> > 3. В windows WinRar открывает не корректно
> Я же говорил!
>
> > 4. В OpenSUSE ark (LANG=en_US.UTF-8 если это важно) открывает не(!)
> > корректно
> > 5. В OpenSUSE ark (LANG=ru_RU.UTF-8 видимо не важно) открывает не(!)
> > корректно
> А они болт клали на нужды и проблемы русскоговорящих пользователей. Поэтому
> у
> них unzip непропатченный. Используйте file-roller в ALT Linux и SUSE для
> совместимости.
>
>
Судя по ссылке, которую приводил выше (
http://datadriven.com.au/2008/12/zip-files-and-encoding-i-hate-you/) это
проблема не только русского языка, но и любого другого в котором используюет
не только латиница (перечислены французы, немцы и итальянцы).

А что делает патч на zip/unzip в Альте? Почему его нет в апстриме zip? -
тогда бы сусе и другим дистрибутивам далеким от проблем россии не пришлось
бы его специально накладывать.



>  > Есть ли какой-нибудь стандарт на кодировку имен файлов, по которому zip
> > архивы бы открывались гарантированно в любой системе в любой программе
> ему
> > следуещему?
> Нет, и в этом проблема (также и для tar). Такие стандарты есть на RAR и
> 7Zip
> (Unicode).
>
>
Нашел стандарт на зип:
http://www.pkware.com/support/zip-application-note
http://www.pkware.com/documents/casestudies/APPNOTE.TXT

про UTF-8 там написано:

          Bit 11: Language encoding flag (EFS).  If this bit is set,
                  the filename and comment fields for this file
                  must be encoded using UTF-8. (see APPENDIX D)

и дальше подробности в Appendix D:

The ZIP format has historically supported only the original IBM PC character

encoding set, commonly referred to as IBM Code Page 437.  This limits
storing
file name characters to only those within the original MS-DOS range of
values
and does not properly support file names in other character encodings, or
languages. To address this limitation, this specification will support the
following change.

If general purpose bit 11 is unset, the file name and comment should conform

to the original ZIP character encoding.  If general purpose bit 11 is set,
the
filename and comment must support The Unicode Standard, Version 4.1.0 or
greater using the character encoding form defined by the UTF-8 storage
specification.  The Unicode Standard is published by the The Unicode
Consortium (www.unicode.org).  UTF-8 encoded data stored within ZIP files
is expected to not include a byte order mark (BOM).



Другими словами, если в заголовке архива установлен бит11, то имена файлов
должны быть кодированы в UTF-8 - т.е. UTF-8 оффициально поддерживается
стандартом. Если гнушный zip будет создавать архивы по умолчанию с
установленным 11м битом и соответственно писать имена файлов в UTF-8, то мне
кажется это могло бы решить проблему переносимости ZIP-архивов по крайней
мере между линуксовыми дистрибутивами (не было бы странной проблемы
совместимости суси а альта) - да и винраровцам было бы проще писать
багрепорты с указанием ссылки на стандарт (в том случае, если они еще не
умеют читать архивы с 11м битом).
----------- следующая часть -----------
Вложение в формате HTML было удалено...
URL: <http://lists.altlinux.org/pipermail/community/attachments/20091021/02cad6e1/attachment-0001.html>


Подробная информация о списке рассылки community