vanessa-automation
vanessa-automation copied to clipboard
Сломанная кодировка кириллицы в именах файлов и каталогов в архиве релиза 1.2.041.15
- Версия Vanessa Automation 1.2.041.15
- Windows 7 x64 Pro
- 7-Zip 23.01 x64, 7-Zip 24.04 x64
В архиве релиза 1.2.041.15 vanessa-automation.1.2.041.15.zip
имена огромного числа файлов (скорее всего тех, чьи имена содержат кириллицу) поломаны.
В архиве предыдущего релиза 1.2.041.1 vanessa-automation-single.1.2.041.1.zip
такой проблемы нет.
При использовании свежего WinRAR 7.00 проблема не воспроизводится...
Спросил о проблеме автора 7-Zip: https://sourceforge.net/p/sevenzip/bugs/2463, таки проблема и в архиве и в 7-zip. Что-то изменилось в процессе сборки архивов?
@lo0p3r Не готов сказать, что изменилось, но учитывая, что такое я видел только при использовании 7zip - возможно проблема на стороне 7zip.
Проблема в архиве. Windows explorer так же открывает и показывает что битые имена в файлах и папках.
Не надо предлагать ставить winrar.
Необходимо исправить архив
Пока нашел только такую команду для явного указания кодировки внутри архива 7z.exe a -tzip -mcu archname.zip file2pack.txt
Я тут привожу в порядок код 7zip в Дебиане, и вот что хочу сказать. У вас в заголовке .zip'а система, на которой он создавался — Unix, а кодировка в архиве — CP866. Никто не ждёт в архиве, сделанном на Unix системе, кодировку 866. То, что некоторые виндовые архиваторы её там ожидают — скорее странность в них, чем ожидаемое поведение.
Если расскажете, как вы такой архив получаете, попробую подсказать, как сформировать его правильно.
Распаковать его можно так: unzip -I CP866 -l ./vanessa-automation.1.2.041.15.zip Если используется unzip с убунтовым патчем.
Или вот так: 7zz -mcp=866 x ./vanessa-automation.1.2.041.15.zip Если используется 7zip с моим патчем вот отсюда https://sourceforge.net/p/sevenzip/bugs/2473/?page=1#96ae Патчик этот уже в Дебиане
PS: Есть замечательная программа zipdetails, показывающая подробно, что у архива внутри. Очень рекомендую в отладочных целях.
Причем на windows 11 русской версии открылся без проблем. Так и разрулил ситуацию. Но, конечно, это не решение проблемы для остальных старых версий ОС
В идеале бы туда писать либо в utf-8, выставляя бит 11 в general purpose flag, либо в отдельное поле unicodename, тогда в обычный filename пусть себе будет 866, любой относительно современный софт возьмёт юникодную версию.
А какой софт, всё-таки, такие архивы создаёт? Надо туда тикет заслать, что ли.
А какой софт, всё-таки, такие архивы создаёт? Надо туда тикет заслать, что ли.
Сейчас под виндой такая команда tar.exe -a -c -f C:\Commons\rep\Distrib\vanessa-automation.zip vanessa-automation
Или второй вариант - создание zip архива с помощью winrar
А какой софт, всё-таки, такие архивы создаёт? Надо туда тикет заслать, что ли.
Сейчас под виндой такая команда tar.exe -a -c -f C:\Commons\rep\Distrib\vanessa-automation.zip vanessa-automation
Или второй вариант - создание zip архива с помощью winrar
Кто же еще в нашей жизни пользуется winrar? Это что то из Windows 98 как и nortondisk doctor
В общем я тут провёл некоторое расследование и выяснилось вот что. tar.exe, который идёт в комплекте с Git for Windows, это bsdtar, использующий libarchive. А libarchive при создании архивов всегда в поле "операционная система, на которой создан архив" ставит значение UNIX, даже если библиотека под винду собрана и на ней работает. Соответственно у нас и получается архив, в котором кодировка 866 (стандартная для консоли Windows), а при этом значение операционки UNIX, и следовательно многие архиваторы там кодировку 866 никак не ждут.
Сделал PR в libarchive с исправлением этого косяка: https://github.com/libarchive/libarchive/pull/2240
@unxed @omankit @lo0p3r
Выложил новый релиз, собрал zip по новому. Просьба проверить. https://github.com/Pr-Mex/vanessa-automation/releases/tag/1.2.041.22
unzip, 7zz, far2l на последнем Mint распаковывают нормально, ура!
unzip ругается, правда, но это ни на что не влияет. unzip с моим патчем (ждите в следующем Ubuntu) уже даже и не ругается :)