Русские имена на «Маке» после разархивации ZIP

Я вчера скачал несколько десятков зип-архивов, внутри которых тысячи файлов с русскими именами. Скачивал через браузер «Сафари» и этот поганец, как у него водится, услужливо мне их распаковал после скачивания. У меня время от времени вылетает из головы эта особенность, в общем, я получил кучу папок и файлов, которые выглядят вот так:

Кракозябры (17.71КиБ)

Эта давнишняя проблема «Мака», проистекающая из родовой травмы зип-архивов — этот архиватор родился ещё во времена ДОСа и для совместимости сохраняет русские имена ещё в той, ДОСовской кодировке. Правда, лет 15 назад я ковырял формат и увидел, что в каких-то метаданных лежит оригинальное имя, но должно быть «Мак» про это поле ничего не знает.

Как бы там ни было, в конце индикатора прогресса я увидел кучу файлов с нечитаемыми именами. Ничего готового я быстро не нашёл, поэтому сварганил небольшой скрипт на «баше», который восстанавливает русские имена разархивированного зип-архива.

Способ употребления такой: складываете всё испорченное в какую-либо папку и запускаете внутри fixzip. В процессе «ремонта» он будет показывать на экране восстановленные имена. Два раза запускать нельзя — имена снова будут испорчены.

Комментарии 38

Дмитрий № 4
Раз уж пошла такая пьянка с кодировками: вчера в очередной раз столкнулся с проблемой коверкания тегов при переключении интерфейса макоси с русского на английский. Евгений, есть ли рецепт для автоматизации исправления этого случая? Править многие теги вручную, а еще и с шазамом — малоприятное времяпрепровождение.
Евгений Степанищев (bolknote.ru) автор № 8
Раз уж пошла такая пьянка с кодировками: вчера в очередной раз столкнулся с проблемой коверкания тегов при переключении интерфейса макоси с русского на английский.

Каких тегов, о чём речь?

Арсений Габдуллин № 5
Евгений, с распаковкой ЗИП-архивов, содержащих файлы с кириллическими (и любыми другими нелатинскими) именами неплохо справляется The Unarchiver: https://itunes.apple.com/en/app/the-unarch … 4353?mt=12
Евгений Степанищев (bolknote.ru) автор № 6
The Unarchiver

Он у меня есть, проблема в том, что «Сафари» сделал это автоматически, системным средствами. И я получил уже распакованные архивы с битой кодировкой.

artemp.pip.verisignlabs.com № 9

Комментарий для Евгения Степанищева:

и этот поганец, как у него водится, услужливо мне их распаковал

Настройки -> Основные -> Открывать «безопасные» файлы после загрузки

* № 11
Нужно не в блоге сетовать, а баг репорт отправлять.
Евгений Степанищев (bolknote.ru) автор № 12
Я и не сетовал, я решение написал и вы зря противопоставляете два этих действия. Кстати, «отчёт об ошибке» пишется английскими словами в русском языке вот так: «баг-репорт».
Dima № 13
Если вы еще тут, непонятно, как использовать скрипт. Не могли бы объяснить? Fixzip ничего не делает с файлами вообще.
Евгений Степанищев (bolknote.ru) автор № 14
Я ещё тут. В последнем абзаце написано что нужно сделать. А что именно вы делаете? Напишите по шагам.
Dima № 15
Довольно много испорченых файлов. Я кладу их в папку, запускаю fixzip — появляется страница с большим количеств кракозябр и больше ничего не происходит. Я чайник. Или кофейник, по всей видимости.
Dima № 17
Просто запускаю программу, потом открываю файлы через кнопку добавить. Думаю, неверно, но иначе не знаю как.
Dima № 19
То есть, сложил в папку, запустил программу, нажал «добавить» эту папку — открывается страница с закорючками. Папку, причем, добавлять не хочет, приходится все файлы выделять. Попытался загрузить один файл — вообще никакой реакции.
Dima № 20
Забвано. Просто есть программа fixzip. А скрипт как использовать после этого? Простите, что столько вопросов, я не программист, только начинаю сейчас заново. Мы фортран с паскалем учили, совсем другое, так сказать. С у меня только базовые знания, а с операционными системами и прочими заморочками вообще не знаком
Евгений Степанищев (bolknote.ru) автор № 22

Комментарий для Dima:

fixzip — и есть скрипт. Или что вы имеете ввиду?

То есть, сложил в папку, запустил программу, нажал «добавить» эту папку — открывается страница с закорючками.

Вот это я вообще не понимаю. Давайте ещё раз раз. Как именно вы запускаете программу?

Dima № 23
Вот это http://www.essentialdatatools.com/products … ectfixzip/

Если это не то, тогда не понимаю, то что вы говорите, вообще. Что тогда значит, «Способ употребления такой: складываете всё испорченное в какую-либо папку и запускаете внутри fixzip. В процессе „ремонта“ он будет показывать на экране восстановленные имена. Два раза запускать нельзя — имена снова будут испорчены.»?

У меня гора файлов, а zip уже удален. Они были на маке и поиск по тексту раньше работал, в новой операционке не работает. Я теперь нужные вообще не могу найти без имен файлов. Очень было бы хорошо, если есть способ, только как я сказал, я недостаточно знаю, чтобы понят то, что возможно для вас простые вещи. Если бы вы могли объяснить, что именно нужно сделать, было бы здорово.
Dima № 24
То есть, мне сохранить этот текстовый файл с названием fixzip.sh и потом запустить с именем папки в типа аргументе?
Евгений Степанищев (bolknote.ru) автор № 25
Комментарий для Dima:

Нет.

Но если вы не знаете как это делается, я объяснять не готов. :)
Dima № 28
Ok, bash это язык. У меня есть мак, но в чем сделать shell? или вообще нет желания это мне пытаться объяснить?
Евгений Степанищев (bolknote.ru) автор № 29
Комментарий для Dima:

Дело не в отсутствии желания, а в том, что рассказывать всё это очень долго. Баш — язык, баш — один из шеллов (shell), по ссылке в моей заметке — программа на баше. Её надо положить к файлам, которые надо исправить и там запустить через консоль.

Попробуйте по этому описанию разобраться, может получится.
Дмитрий Дымов № 30
Всё пошло не по плану! Закинул скрипт в папку загрузок, запустил, а он почему-то начал переименовывать из корня — полез в документы… ну а дальше додумаете сами
Максим Донских № 34
Добрый день,

Аналогичная проблема, как у Дмитрия. Не придумали ли решение? Мало того, что вся моя система теперь сами понимаете как выглядит, так еще и сетевые папки туда же.
Евгений Степанищев автор № 35
Добрый!

Над решением я не думал (разве что запретить запускать без параметров). Но вообще надо бы, судя по всему надо этим подумать, просто у меня пока сил нет.
Максим Донских № 36
Добрый день!

Что же делать? :D

Давайте очень сильно очень срочно подумаем как исправить. :)

Не столь важно сейчас (для меня), чтобы этот скрипт у меня работал, как то, чтобы все файлы и папки (в том числе сетевые и системные) вернулись в первозданный вид. А то, чувствую, меня уволят :D

Напишите предостережение большими буквами в начале сообщения :)
Евгений Степанищев автор № 37
Для начало было бы неплохо увидеть 2—3 имени — как было и во что превратилось.