- Вики IT-KB
- Инструменты пользователя
- Инструменты сайта
- Боковая панель
- Решение проблемы кодировок в архивах в macOS и отправка созданного архива почтой
- Приводим русские тексты на Mac OS X в одну кодировку Python-скриптом
- Как определить кодировку файлов в Mac OS с помощью командной строки
- Определение кодировки файлов и набора символов через командную строку в Mac OS
- Windows — Кириллица в именах файлов внутри архива ZIP
- Содержание
- Описание проблемы
- Почему так
- Что делать
- Как это автоматизировать
- Как распаковать RAR архивы в Mac OS. Бесплатная программа
Вики 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 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 .
Как это автоматизировать
Понятное дело, что каждый раз лезть в командную строку и писать там команду архивации с необходимыми ключами очень сильно обламывает, ведь хочется, чтобы всё выполнялось в два клика мышью.
Источник
Как распаковать RAR архивы в Mac OS. Бесплатная программа
Удачно дополнить стандартный набор приложений macOS может бесплатная утилита из Mac App Store под названием The Unarchiver.
Как понятно из названия, программа позволяет работать со всеми распространенными форматами сжатия.
Странно, что в Купертино игнорируют это направление и пользователь для комфортной работы вынужден скачивать что-то из магазина приложений.
Даже в самом базовом сценарии использования компьютера рано или поздно потребуется утилита для разархивированных данных. То ли скачал архив с файлообменника, то ли знакомый прислал фото одним файлом, то ли большой объем данных был сжат для экономии трафика.
The Unarchiver давно и прочно обосновался в топе бесплатных утилит Mac App Store. Пользователей подкупает всеядность и простота программы. Здесь нет тонны настроек, тонкой подгонки под конкретные требования или глубинных параметров.
Все работает сразу после установки с минимальным вмешательством пользователя.
В настройках для удобства можно включить удаление архива после его распаковки и задать базовые правила сохранения файлов.
Можно указать постоянный или переменный путь сохранения, включить создание папки при наличии нескольких файлов в архиве и настроить дату создаваемой папки.
После этого об утилите забываешь и пользуешься по мере необходимости.
Любой архив по двойному нажатию превращается в готовый к работе файл или папку с данными. Настоящий MustHave для любого маковода.
Скачать The Unarchiver можно бесплатно в Mac App Store.
Источник