<br><br><div class="gmail_quote">2009/10/19 Андрей Черепанов <span dir="ltr">&lt;<a href="mailto:cas@altlinux.ru">cas@altlinux.ru</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

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

<br>А что делает патч на zip/unzip в Альте? Почему его нет в апстриме zip? - тогда бы сусе и другим дистрибутивам далеким от проблем россии не пришлось бы его специально накладывать.<br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

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

<br>про UTF-8 там написано:<br><br>          Bit 11: Language encoding flag (EFS).  If this bit is set,<br>                  the filename and comment fields for this file<br>                  must be encoded using UTF-8. (see APPENDIX D)<br>

<br>и дальше подробности в Appendix D:<br><br></div></div>The ZIP format has historically supported only the original IBM PC character <br>encoding set, commonly referred to as IBM Code Page 437.  This limits storing <br>

file name characters to only those within the original MS-DOS range of values <br>and does not properly support file names in other character encodings, or <br>languages. To address this limitation, this specification will support the <br>

following change. <br><br>If general purpose bit 11 is unset, the file name and comment should conform <br>to the original ZIP character encoding.  If general purpose bit 11 is set, the <br>filename and comment must support The Unicode Standard, Version 4.1.0 or <br>

greater using the character encoding form defined by the UTF-8 storage <br>specification.  The Unicode Standard is published by the The Unicode<br>Consortium (<a href="http://www.unicode.org">www.unicode.org</a>).  UTF-8 encoded data stored within ZIP files <br>

is expected to not include a byte order mark (BOM). <br><br><br><br>Другими словами, если в заголовке архива установлен бит11, то имена файлов должны быть кодированы в UTF-8 - т.е. UTF-8 оффициально поддерживается стандартом. Если гнушный zip будет создавать архивы по умолчанию с установленным 11м битом и соответственно писать имена файлов в UTF-8, то мне кажется это могло бы решить проблему переносимости ZIP-архивов по крайней мере между линуксовыми дистрибутивами (не было бы странной проблемы совместимости суси а альта) - да и винраровцам было бы проще писать багрепорты с указанием ссылки на стандарт (в том случае, если они еще не умеют читать архивы с 11м битом).<br>

<br><br>