Mac os zip кодировка

Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки.

Инструменты пользователя

Инструменты сайта

Боковая панель

Решение проблемы кодировок в архивах в macOS и отправка созданного архива почтой

В macOS есть старая проблема кодировок в zip-архивах. Если создать архив штатным архиватором, а после открыть его штатным архиватором Windows или старой версией 7-zip, которая ещё не использовала кодировку UTF-8 по умолчанию, то можно увидеть нечитаемые имена вложенных в архив файлов и каталогов:

Сторонние бесплатные архиваторы, например Keka, также имеют эту проблему, хотя разработчик и обещает это решить. Коммерческие решения не проверялись.

Когда я начал заниматься решением этой проблемы, задумался о том, что неплохо было бы иметь возможность создать архив и сразу добавить его в качестве вложения в почтовом сообщении.

Установим бесплатную библиотеку p7zip:

Откроем Automator.app и создадим документ типа Служба

Настроим параметры: Служба получает файлы и папки в Finder.app

Добавим 1 шаг (этот шаг – основной, так как с его помощью создаётся архив):

Запустить shell-скрипт (тип bash), передать входные данные как аргументы.

Запустить shell-скрипт; тип bash; передать входные данные как аргументы.

Вторым шагом получаем расположение архива. Это понадобится в дальнейшем для его удаления.

Добавим 3 шаг: Установить значение переменной. Создадим переменную, например Archive .

Добавим 4 шаг: Получить указанные объекты Finder

Добавим 5 шаг: Новое сообщение почты. Если необходимо, в поле сообщения можно ввести текст, а также выбрать учётную запись, от имени которой будет выполняться отправка письма.

Если Вы используете сторонние решения клиента электронной почты, то необходимо добавить шаг «Открыть объекты Finder» и из ниспадающего списка выбрать свой почтовый клиент.

Добавим 6 шаг: Получить значение переменной. Выберем ранее созданную переменную Archive.

Добавим 7 шаг: Переместить объект Finder в корзину

Сохраняем службу под именем Создать архив и отправить

Проверяем работу службы.

В каталоге «Тест архива» располагаются файлы и каталог:

Выделяем всё и с контекстного меню из раздела «службы» выбираем Создать архив и отправить. Появляется окно почтового клиента:

Отправим и посмотрим то, как откроется архив штатным архиватором:

Обратная ситуация аналогична, если пользователь Windows создаст архив штатной сжатой папкой или будет использовать старую версию 7-zip, то пользователь macOS увидит такое:

Для решения этого вопроса проще использовать готовое бесплатное решение доступное в AppStore – The Unarchiver.

Стоит заметить, что подобный архив не откроется на iOS* в программе Файлы**.

Проверено на следующих конфигурациях:

Версия ОС
Apple macOS High Sierra (10.13.4)

Автор первичной редакции:
Виталий Якоб
Время публикации: 20.05.2018 18:09

Источник

Как определить кодировку файла в Mac OS по командной строке 2021

5 Terminal Commands EVERY Mac User Should Know!

  • 5 Terminal Commands EVERY Mac User Should Know!

    Вы можете определить кодировку файлов и набор символов с помощью командной строки в Mac OS (и Linux) с помощью команды «file», которая помогает получить общую и конкретную информацию о типе файла.

    Это, вероятно, не будет уместным советом для многих пользователей, но если вам необходимо работать с определенным набором символов для чего-либо или вам нужно знать, что тип файла, кодировка или набор символов для введенного элемента, между прочим из командной строки, то это сделает свое дело.

    Команда file работает в Mac OS и Mac OS X, а также в Linux и многих других Unix-вариациях, что делает этот трюк полезным для сценариев и других аналогичных целей.

    Определение кодировки файла и набора символов с помощью командной строки в Mac OS

    Основной синтаксис выглядит следующим образом:

    file -I (input file)

    (В случае, если это не было очевидно, это заглавная буква «i» в качестве флага, как в -I, а не строчная буква L)

    Нажатие на return с правильным именем файла в качестве ввода покажет набор символов, такой как UTF-8, us-ascii, двоичный, 8-битный и т. Д.

    Например, скажем, мы проверяем набор символов и кодировку файла с именем «text.txt», тогда синтаксис будет выглядеть так:

    $ file -I text.txt
    text.txt: text/plain; charset=unknown-8bit

    «Text / plain» — тип файла, а «unknown-8bit» — кодировка файла набора символов.

    Вы также можете выполнить команду file буквально для любого другого файла, будь то изображения, архивы, исполняемые файлы или что-либо еще, на что вы хотите указать команду. Это может быть полезно, если вы автоматизируете что-то, чтобы определить тип файла, чтобы затем запустить соответствующую команду, возможно, после того, как файл был загружен с помощью curl, и необходимо определить тип архива, прежде чем можно будет выполнить правильную команду.

    $ file -I DownloadedFile.zip
    DownloadedFile.zip: application/zip; charset=binary

    Существует много других применений для проверки набора символов, кодировки и типа файла с помощью командной строки с помощью команды «file», а флаг -I является лишь одним из множества доступных параметров. Посетите страницу справочника для файла, чтобы узнать больше, если вы заинтересованы, и не забудьте проверить наши другие советы по командной строке (или перечислить все команды терминала, доступные на Mac, и немного повеселиться).

    Знаете ли вы другой или лучший способ проверить кодировку файла и набор символов с помощью командной строки в Mac OS? Дайте нам знать об этом в комментариях!

    Источник

    Приводим русские тексты на Mac OS X в одну кодировку Python-скриптом

    Случилось мне иметь ноут на OS X, комп на Linux и одного из друзей с Windows. И вот через dropbox обмениваются все эти три компа документами разными. В том числе и текстовыми, в которых хранятся разные заметки, задачи и т.п. И вот незадача: тексты написанные на MacOSx плохо читаются в блокноте Винды, а виндовые в textedit на MacOSx.

    И вся причина в том, что на винде блокнот использует кодировку Windows 1251, а на OS X используется по умолчанию MACCYRILLIC. Причем обе программы без проблем работают с UTF-8 кодировкой.
    Вот только конвертировать из одной кодировки в другую как-то неудобно, лишнее время тратить на открытие терминала и набор заветных команд iconv…

    Пораздумав, написал небольшой скрипт, который сам определяет используемую кодировку и конвертирует в UTF-8 все txt-файлы.

    Что использую для всего:
    Python 2.7
    Mac OS X 10.7.5
    PyCharm IDE

    Изначально сделал определение кодировки самостоятельно, без дополнительных модулей. Но по совету ad3w решил переписать с использованием готового модуля chardet для определения кодировки.
    Кому интересно, предыдущий

    Определение происходит простым перебором кодировок и выбором той, в которой не будет лишних символов. А набор символов определяете Вы. Конечно этот способ не подойдет для файлов с DOS-графикой, но в обычных целях использования txt его вполне хватит.

    Скачиваем модуль chardet 1.1,
    Распаковываем и устанавливаем:

    Создаем свой скрипт для перекодировки файлов:

    Далее необходимо сделать удобным запуск данного скрипта прямо из папки в OS X.

    Открываем Automator и создаем Службу.
    Вверху выбираем пункты, чтобы получилось «Служба получает файлы и папки в Finder.app».

    Далее ставим действие «получить выбранные объекты Finder».
    Далее «Запустить Shell-скрипт» в настройках его «Передать ввод: как аргументы» и в нем содержание:

    Дописал 2>/dev/null, чтобы автоматор не останавливал выполнение при выводе ошибки модуля chardet.

    И последний пункт «Show Growl Notification» (в нем можно написать, что конвертация произведена).

    Сохраняем с именем латинскими буквами (с русскими у меня почему-то пункт в меню не появлялся, пока не переименовал) и проверяем.

    Новый пункт меню появится в Finder в меню файлов и папок в подменю Сервисы.

    Источник

    Как определить кодировку файлов в Mac OS с помощью командной строки

    Вы можете определить кодировку и символы файлов, установленные в командной строке в Mac OS (и linux), используя команду «файл», которая помогает получить общую и конкретную информацию о типе файла.

    Вероятно, это не будет подходящим советом для многих пользователей, но если вам требуется работать с определенным набором символов для чего-то или вам нужно знать, какой тип файла, кодировка или набор символов введенного элемента командной строки, то это сделает трюк.

    Команда файла работает в Mac OS и Mac OS X, а также в Linux и многих других версиях unix, что делает этот трюк полезным для сценариев и других подобных целей.

    Определение кодировки файлов и набора символов через командную строку в Mac OS

    Основной синтаксис выглядит следующим образом:

    файл -I (входной файл)

    (В случае, если это не было очевидно, это капитал «i» в качестве флага, как в -I, а не в нижнем регистре L)

    Нажатие возврата с правильным именем файла, так как вход будет отображать набор символов, такой как UTF-8, us-ascii, двоичный, 8 бит и т. Д.

    Например, допустим, мы проверяем набор символов и кодировку файла с именем «text.txt», тогда синтаксис будет выглядеть так:

    $ file -I text.txt
    text.txt: text / plain; кодировка = неизвестно-8bit

    «Text / plain» — это тип файла, а «unknown-8bit» — кодировка файла набора символов.

    Вы также можете выдать команду файла буквально любому другому файлу, будь то изображения, архивы, исполняемые файлы или что-то еще, на что вы хотите указать команду. Это может быть приятно, если вы автоматизируете что-то для определения типа файла, а затем запускаете соответствующую команду, возможно, после того, как файл был загружен с помощью curl, и тип архива должен быть определен до того, как будет выполнена правильная команда.

    $ file -I СкачанFile.zip
    ЗагруженоFile.zip: application / zip; кодировка = двоичная

    Существует много других применений для проверки набора символов, кодирования файлов и типа файла через командную строку с помощью команды «файл», а флаг -I — только один из множества доступных вариантов. Просмотрите страницу руководства для файла, чтобы узнать больше, если это интересно, и не забудьте ознакомиться с нашими другими советами в командной строке (или перечислить все команды терминала, доступные на Mac, и немного повеселиться).

    Вы знаете другой или лучший способ проверить кодировку и набор символов через командную строку в Mac OS? Дайте нам знать об этом в комментариях!

    Источник

    Windows — Кириллица в именах файлов внутри архива ZIP

    В статье рассказывается о том, как упаковывать файлы в ZIP-архив с кодировкой имён в UTF-8.

    Содержание

    Описание проблемы

    Иногда при открытии архивов ZIP в именах файлов написаны иероглифы. В основном, это случается при работе с архивами, упакованными в среде Windows, в других операционных системах, например Linux и Mac OS.

    Вот как это выглядит:

    Почему так

    Такое получается из-за разных кодировок в разных операционных системах. А точнее из-за того, что Windows до сих пор использует свою WIN1251 , когда давно уже существует UTF-8 , созданная специально во избежание подобных проблем. ZIP, хоть и являясь старейшим и распространённейшим форматом архивов, испытывает проблемы с этим при переносе архива с платформы на платформу.

    Не имеет значения, какую программу-архиватор вы используете — причина именно в самом формате ZIP . Для проверки мы упаковали тестовый архив с настройками по умолчанию сначала архиватором WinRAR, затем — архиватором 7-Zip. После чего просмотрели архивы в среде Mac OS — в обоих архивах кириллические имена файлов превратились в набор кракозябр.

    Ну так может тогда не стоит использовать формат ZIP и паковать всё, например, в 7z ? В общем-то, это хорошая идея, но дело в том (и это единственная причина), что ZIP , как уже говорилось, является наиболее распространённым форматом архивов, потому чтобы большинство ваших пользователей смогло распаковать ваш архив, использовать рекомендуется именно его.

    Что делать

    Нужно как-то принудительно указать архиватору, что при кодировке имён файлов он должен использовать UTF-8.

    И у архиватора 7-Zip есть такая возможность. Формат команды следующий:

    7z.exe — имя исполняемого файла архиватора; a — команда архивации; -tzip — формат архива: ZIP; -mcu — именно эти ключи указывают на кодировку UTF-8; archname.zip — имя итогового файла архива; file2pack.txt — файлы для упаковки.

    После создание архива такой командой кириллица в именах файлов сохраняется на всех платформах, использующих UTF-8 (то есть, практически везде):

    Очередная медаль на грудь славного архиватора 7-Zip .

    Как это автоматизировать

    Понятное дело, что каждый раз лезть в командную строку и писать там команду архивации с необходимыми ключами очень сильно обламывает, ведь хочется, чтобы всё выполнялось в два клика мышью.

    Источник

    Читайте также:  Когда будет 2гис для windows phone
  • Оцените статью