Русские имена на «Маке» после разархивации ZIP
Я вчера скачал несколько десятков зип-архивов, внутри которых тысячи файлов с русскими именами. Скачивал через браузер «Сафари» и этот поганец, как у него водится, услужливо мне их распаковал после скачивания. У меня время от времени вылетает из головы эта особенность, в общем, я получил кучу папок и файлов, которые выглядят вот так:
![]() |
Эта давнишняя проблема «Мака», проистекающая из родовой травмы зип-архивов — этот архиватор родился ещё во времена ДОСа и для совместимости сохраняет русские имена ещё в той, ДОСовской кодировке. Правда, лет 15 назад я ковырял формат и увидел, что в каких-то метаданных лежит оригинальное имя, но должно быть «Мак» про это поле ничего не знает.
Как бы там ни было, в конце индикатора прогресса я увидел кучу файлов с нечитаемыми именами. Ничего готового я быстро не нашёл, поэтому сварганил небольшой скрипт на «баше», который восстанавливает русские имена разархивированного зип-архива.
Способ употребления такой: складываете всё испорченное в какую-либо папку и запускаете внутри fixzip. В процессе «ремонта» он будет показывать на экране восстановленные имена. Два раза запускать нельзя — имена снова будут испорчены.
Насяльника, заголовканама!
Комментарий для Имярекъ:
Спасибанама! :)
convmv на маках не собирается?
Раз уж пошла такая пьянка с кодировками: вчера в очередной раз столкнулся с проблемой коверкания тегов при переключении интерфейса макоси с русского на английский. Евгений, есть ли рецепт для автоматизации исправления этого случая? Править многие теги вручную, а еще и с шазамом — малоприятное времяпрепровождение.
Евгений, с распаковкой ЗИП-архивов, содержащих файлы с кириллическими (и любыми другими нелатинскими) именами неплохо справляется The Unarchiver: https://itunes.apple.com/en/app/the-unarchiver/id425424353?mt=12
Комментарий для Арсений Габдуллин:
Он у меня есть, проблема в том, что «Сафари» сделал это автоматически, системным средствами. И я получил уже распакованные архивы с битой кодировкой.
Комментарий для miracle.rpz.name:
В «брю» есть, но тут речь о средствах, встроенных в систему.
Комментарий для Дмитрий:
Каких тегов, о чём речь?
Комментарий для Евгения Степанищева:
Настройки -> Основные -> Открывать «безопасные» файлы после загрузки
Комментарий для artemp.pip.verisignlabs.com:
Ага, спасибо! Просто в других случаях это очень удобно.
Нужно не в блоге сетовать, а баг репорт отправлять.
Комментарий для *:
Я и не сетовал, я решение написал и вы зря противопоставляете два этих действия. Кстати, «отчёт об ошибке» пишется английскими словами в русском языке вот так: «баг-репорт».
Если вы еще тут, непонятно, как использовать скрипт. Не могли бы объяснить? Fixzip ничего не делает с файлами вообще.
Комментарий для Dima:
Я ещё тут. В последнем абзаце написано что нужно сделать. А что именно вы делаете? Напишите по шагам.
Довольно много испорченых файлов. Я кладу их в папку, запускаю fixzip — появляется страница с большим количеств кракозябр и больше ничего не происходит. Я чайник. Или кофейник, по всей видимости.
Комментарий для Dima:
Как вы запускаете fixzip?
Просто запускаю программу, потом открываю файлы через кнопку добавить. Думаю, неверно, но иначе не знаю как.
Комментарий для Dima:
Это утилита командной строки ( https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8 ), просто она не запускается.
То есть, сложил в папку, запустил программу, нажал «добавить» эту папку — открывается страница с закорючками. Папку, причем, добавлять не хочет, приходится все файлы выделять. Попытался загрузить один файл — вообще никакой реакции.
Забвано. Просто есть программа fixzip. А скрипт как использовать после этого? Простите, что столько вопросов, я не программист, только начинаю сейчас заново. Мы фортран с паскалем учили, совсем другое, так сказать. С у меня только базовые знания, а с операционными системами и прочими заморочками вообще не знаком
Забавно*
Комментарий для Dima:
fixzip — и есть скрипт. Или что вы имеете ввиду?
Вот это я вообще не понимаю. Давайте ещё раз раз. Как именно вы запускаете программу?
Вот это http://www.essentialdatatools.com/products/objectfixzip/
Если это не то, тогда не понимаю, то что вы говорите, вообще. Что тогда значит, «Способ употребления такой: складываете всё испорченное в какую-либо папку и запускаете внутри fixzip. В процессе „ремонта“ он будет показывать на экране восстановленные имена. Два раза запускать нельзя — имена снова будут испорчены.»?
У меня гора файлов, а zip уже удален. Они были на маке и поиск по тексту раньше работал, в новой операционке не работает. Я теперь нужные вообще не могу найти без имен файлов. Очень было бы хорошо, если есть способ, только как я сказал, я недостаточно знаю, чтобы понят то, что возможно для вас простые вещи. Если бы вы могли объяснить, что именно нужно сделать, было бы здорово.
То есть, мне сохранить этот текстовый файл с названием fixzip.sh и потом запустить с именем папки в типа аргументе?
Комментарий для Dima:
Нет.
Но если вы не знаете как это делается, я объяснять не готов. :)
Комментарий для Dima:
Я не знаю что такое http://www.essentialdatatools.com/products/objectfixzip/, никакого отношения не имею к этой программе.
А вы попробуйте. Что за язык, можно это сделать в Visual Studio?
Ok, bash это язык. У меня есть мак, но в чем сделать shell? или вообще нет желания это мне пытаться объяснить?
Комментарий для Dima:
Дело не в отсутствии желания, а в том, что рассказывать всё это очень долго. Баш — язык, баш — один из шеллов (shell), по ссылке в моей заметке — программа на баше. Её надо положить к файлам, которые надо исправить и там запустить через консоль.
Попробуйте по этому описанию разобраться, может получится.
Всё пошло не по плану! Закинул скрипт в папку загрузок, запустил, а он почему-то начал переименовывать из корня — полез в документы... ну а дальше додумаете сами
Плохо, так делать не надо было.
есть лекарство?
Я не делал, в теории, думаю, можно что-то такое придумать.
Добрый день,
Аналогичная проблема, как у Дмитрия. Не придумали ли решение? Мало того, что вся моя система теперь сами понимаете как выглядит, так еще и сетевые папки туда же.
Добрый!
Над решением я не думал (разве что запретить запускать без параметров). Но вообще надо бы, судя по всему надо этим подумать, просто у меня пока сил нет.
Добрый день!
Что же делать? :D
Давайте очень сильно очень срочно подумаем как исправить. :)
Не столь важно сейчас (для меня), чтобы этот скрипт у меня работал, как то, чтобы все файлы и папки (в том числе сетевые и системные) вернулись в первозданный вид. А то, чувствую, меня уволят :D
Напишите предостережение большими буквами в начале сообщения :)
Для начало было бы неплохо увидеть 2—3 имени — как было и во что превратилось.
Donskikh.Maksim@gmail.com
Напишите мне на почту, обменяемся мессенджерами.