<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Раздел полезных советов: Работа с русскими именами файлов в ...</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/72961.html</link>
    <description>Одна из неожиданных проблем, возникающих при обмене файлами с пользователями Windows - странное поведение ZIP-архивов. Казалось бы, достаточно правильно настроить кодировки... Не тут-то было!&lt;br&gt;&lt;br&gt;Для текстовых файлов достаточно найти редактор с выбором кодировки, для дисков можно указать кодировку при монтировании, более &quot;продвинутые&quot; форматы архивов (RAR, 7zip) тоже как-то решают эту проблему; и только ZIP, самый распространённый и &quot;самый совместимый&quot; архиватор, почему-то неожиданно оказывается несовместимым в принципе, стоит именам файлов выйти за пределы ASCII.&lt;br&gt;&lt;br&gt;Есть мнение, что в архивы ZIP имена файлов пишутся в кодировке файловой системы, и дескать, отсюда и проблемы - в Windows одна кодировка, а в Linux другая. И виноват в том устаревший архивный формат и сделать с этим ничего нельзя, а если очень хочется - переименовывать распакованные файлы скриптами и прочими костылями. Что ж, попробуем.&lt;br&gt;&lt;br&gt;Однако попытка увидеть имена файлов путём перекодировки вида&lt;br&gt;&lt;br&gt;   ls -N &amp;#124; iconv -f cp866&lt;br&gt;&lt;br&gt;заканчивает</description>

<item>
    <title>Работа с русскими именами файлов в ZIP и UNZIP под nix (Аноним)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/72961.html#59</link>
    <pubDate>Mon, 12 Oct 2020 12:15:28 GMT</pubDate>
    <description>На самом деле, алгоритм там чуууточку сложнее, ведь ещё и в ANSI зипы встречются (но чтоб без дублирования в UTF8 - исключительно редко). В скрипте ziplist это учитывается, совсем идеальный алгоритм можно подсмотреть там.&lt;br&gt;</description>
</item>

<item>
    <title>Работа с русскими именами файлов в ZIP и UNZIP под nix (Аноним)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/72961.html#58</link>
    <pubDate>Mon, 12 Oct 2020 11:48:00 GMT</pubDate>
    <description>Удивительно, насколько ни один из архиваторов (в ключая unzip) на linux не в состоянии правильно определять кодировку зипов без подсказок.&lt;br&gt;&lt;br&gt;Правильный алгоритм:&lt;br&gt;&lt;br&gt;1. Есть ли в заголовке поле &amp;#171;Unicode Path&amp;#187; (0x7075)? Используем его, оно в UTF-8.&lt;br&gt;2. Установлен ли флаг Unicode (0x800) в поле &amp;#171;Flags&amp;#187;? Предполагаем, что поле &amp;#171;Имя файла&amp;#187; в UTF-8.&lt;br&gt;3. Имеет ли поле &amp;#171;HostOS&amp;#187; значения 0 (FAT) или 11 (NTFS)? Предполагаем, что поле &amp;#171;Filename&amp;#187; в кодировке OEM, соответствующей языку системы (соответствие кодировок языкам можно глянуть, например, в исходниках Wine).&lt;br&gt;4. Предполагаем, что поле &amp;#171;Имя файла&amp;#187; находится в UTF-8.&lt;br&gt;&lt;br&gt;far2l (линуксовый порт far manager) делает это именно так, и в нём корректно открываются все протестированные зипы из моего зоопарка (там есть с винды, с макоси, с линукса, сделанные кучей упаковщиков разных версий).&lt;br&gt;&lt;br&gt;На сладкое держите perl скрипт, определяющий правильную кодировку имени для каждого файла в zip архиве (да, они ещё и от</description>
</item>

<item>
    <title>Работа с русскими именами файлов в ZIP и UNZIP под nix (Лев)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/72961.html#57</link>
    <pubDate>Sat, 05 Sep 2020 15:30:48 GMT</pubDate>
    <description>Привет из будущего! Столкнулся с этой столетней проблемой, когда запускал unzip по SSH через PHP из-под WSL Win10 &amp;#128563; Оказалось, что локаль консоли удаленного хоста зависит от локали локального хоста (и от настроек SSH), поэтому у меня при подключении из-под Windows была локаль C.UTF-8, а из-под соседних linux&apos;ов en_US.UTF-8, и соответственно из-под linux все было нормально, имена файлов после unzip отображались корректно, а из-под windows - знаки вопроса.&lt;br&gt;Так что достаточно просто поменять локаль на en_US.UTF-8 или ru_RU.UTF-8. Надеюсь кому-то поможет.&lt;br&gt;php -r &quot;print_r(shell_exec(&#092;&quot;ssh user&#064;host &apos;LANG=ru_RU.utf8 &amp;&amp; unzip filename.zip&apos;&#092;&quot;));&quot;&lt;br&gt;</description>
</item>

<item>
    <title>Работа с русскими именами файлов в ZIP и UNZIP под nix (Аноним)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/72961.html#56</link>
    <pubDate>Tue, 23 Jun 2020 14:01:49 GMT</pubDate>
    <description>Я тут патчики написал к unzip и p7zip, которые раз и навсегда решают проблему с кодировками windows-архивов.&lt;br&gt;&lt;br&gt;Вот тут всё лежит:&lt;br&gt;https://github.com/unxed/oemcp&lt;br&gt;</description>
</item>

<item>
    <title>Работа с русскими именами файлов в ZIP и UNZIP под nix (x230)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/72961.html#55</link>
    <pubDate>Sun, 21 Jun 2020 13:47:09 GMT</pubDate>
    <description>В Manjaro KDE (в dolphin) такая проблема решилась после того, как я сделал следующее:&lt;br&gt;&lt;br&gt;# Удалил:&lt;br&gt;zip&lt;br&gt;unzip&lt;br&gt;&lt;br&gt;# Установил:&lt;br&gt;zip-natspec&lt;br&gt;unzip-natspec&lt;br&gt;libnatspec&lt;br&gt;</description>
</item>

<item>
    <title>Работа с русскими именами файлов в ZIP и UNZIP под nix (uropb)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/72961.html#54</link>
    <pubDate>Wed, 21 Jan 2015 12:45:55 GMT</pubDate>
    <description>Для меня лично наиболее удобным оказался вариант с mc. Миднайт командер, оказывается, нормально заходит в архивы с русскими именами. При копировании из архива в нужную директорию русские имена сохраняются. И никаких патчей.&lt;br&gt;</description>
</item>

<item>
    <title>Раздел полезных советов: Работа с русскими именами файлов в ... (Хрен с горы)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/72961.html#53</link>
    <pubDate>Sun, 15 Sep 2013 12:26:37 GMT</pubDate>
    <description>Люто, бешено плюсую.&lt;br&gt;7z спасёт отцов русской демократии.&lt;br&gt;</description>
</item>

<item>
    <title>Раздел полезных советов: Работа с русскими именами файлов в ... (Ю.Т.)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/72961.html#52</link>
    <pubDate>Sat, 15 Dec 2012 10:33:52 GMT</pubDate>
    <description>&amp;gt; Не так уж всё и сложно :) &lt;br&gt;&amp;gt; Что касается &quot;сопровождения&quot;, то дистрибутивы, как правило, позволяют собирать не только &lt;br&gt;&amp;gt; вручную, но и собирать пакеты, или подключать сторонние репозитории.&lt;br&gt;&amp;gt; После установки пакетов их &quot;сопровождение&quot; ничем не отличается от всех прочих, а &lt;br&gt;&amp;gt; работа с ними &amp;#8211; от работы со оригинальными zip и unzip, &lt;br&gt;&amp;gt; независимо от программ, которые их вызывают.&lt;br&gt;&lt;br&gt;...&lt;br&gt;&lt;br&gt;Ну-с, что кому кажется сложным или простым, тема вечная. По-моему, основывать решение на доп. библиотеке, которая угадывает (!) кодировку, это уже ошибка. А не угадает, тогда как? Или вот тут предлагали: то шелл-скрипты, то в два действия архив раскрывать.&lt;br&gt;&lt;br&gt;Да вообще работа со сложно-уложенной информацией в консоли это скорее упражнение в йоге, но не работа. :)&lt;br&gt;</description>
</item>

<item>
    <title>Раздел полезных советов: Работа с русскими именами файлов в ... (Natrio)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/72961.html#51</link>
    <pubDate>Sat, 15 Dec 2012 10:05:34 GMT</pubDate>
    <description>Не так уж всё и сложно :)&lt;br&gt;&lt;br&gt;Что касается &quot;сопровождения&quot;, то дистрибутивы, как правило, позволяют собирать не только вручную, но и собирать пакеты, или подключать сторонние репозитории.&lt;br&gt;После установки пакетов их &quot;сопровождение&quot; ничем не отличается от всех прочих, а работа с ними &amp;#8211; от работы со оригинальными zip и unzip, независимо от программ, которые их вызывают.&lt;br&gt;&lt;br&gt;Для себя в ArchLinux я собрал пакеты, заменяющие zip и unzip, и положил в AUR:&lt;br&gt;http://aur.archlinux.org/packages/zip-natspec/&lt;br&gt;http://aur.archlinux.org/packages/unzip-natspec/&lt;br&gt;Для Убунты (к Дебиану тоже подходят) мои пакеты собрали без меня :)&lt;br&gt;http://launchpad.net/~frol/+archive/zip-i18n&lt;br&gt;Насчёт других дистров не знаю, но в случае чего можно поступить аналогично.&lt;br&gt;&lt;br&gt;А кодировку libnatspec определяет самостоятельно, на основе языка локали. Если запустить с другой локалью, будет выбрана другая кодировка.&lt;br&gt;Юникодные архивы альтернативного формата infozip будут распаковываться как обычно, на это патчи не влияют.&lt;br&gt;</description>
</item>

</channel>
</rss>
