Кодировка имен файлов 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* в программе Файлы**.

Читайте также:  Rocketdock ��� linux mint

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

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

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

Источник

Кривые файлы txt. Или как настроить кодировку на Mac

Скорее всего многим пользователям Mac приходилось работать с файлами txt. Чаще всего в этом формате представлены различные мануалы, readme, инструкции и т.д. И если эти документы были созданы в Windows среде, то при открытии их на Mac, может возникнуть небольшая, но в тоже время крайне неприятная проблема с кодировкой.

Давайте вместе разберёмся как научить Mac на 100% распознавать txt файл созданный на «Винде».

Дело в том, что операционные системы Apple и Microsoft руководствуется разными стандартами при кодировании кириллицы, отсюда и проблемы с её отображением. Существуют специальные утилиты призванные подружить кодировку Windows с Mac OS X, но предлагаю обойтись штатными средствами.

Решение проблемы

Исходную кодировку на Mac нужно сменить на Windows Cyrillic. Для этого находим в домашней папке скрытый файл .CFUsertextEncoding.

Для отображения скрытых файлов необходимо зайти в Терминал (программы > утилиты) и ввести команду (можете скопировать).

и нажать enter.
Далее, для того чтобы изменения вступили в силу, нужно перезапустить Finder. Вводим команду.

и опять enter.
Для того чтобы опять сделать файлы скрытыми, нужно заменить в первой команде true на false, а затем опять перезапустить Finder.

Итак, кликаем по этому файлу правой кнопкой и в подразделе «открыть в программе» выбираем TextEdit. В документе присутствует только одна строка, в которой нужно значение 0x7 заменить на 0x502. После чего сохраняем файл, перезагружаем Mac и радуемся.

Если помогла статья, не ленись. Нажми кнопку — поделись! )

Источник

Приводим русские тексты на 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 по командной строке 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? Дайте нам знать об этом в комментариях!

    Источник

    Можно ли верить своим глазам? (Unicode в именах файлов)

    Несколько дней назад один из наших пользователей прислал образец (SHA1: fbe71968d4c5399c2906b56d9feadf19a35beb97, определяется как TrojanDropper:Win32/Vundo.L). Это троян для фишинга с сайтов vk.com и vkontakte.ru, запросы на которые перенаправляются на 92.38.209.252 необычным способом.

    Обычный метод перенаправления трафика — добавить запись в файл hosts, который находится в папке %SystemRoot%\system32\drivers\etc. Однако, когда мы открываем этот файл на заражённом компьютере, то там нет никаких записей для vk.com и vkontakte.ru:

    Но если включить отображение скрытых файлов, то появляется ещё один файл hosts:

    Мы видим два файла с одинаковым названием в одной папке. Но ведь одна директория не может содержать двух файлов с одинаковым названием. Если скопировать имена файлов в Notepad, сохранить как текст Unicode и открыть в Hex-редакторе, то появится следующая картина (верхняя строчка для первого файла hosts, нижняя — для второго):

    В Unicode (UTF-16) символ 0x006F выглядит так же, как 0x6F в ASCII, где тот соответствует букве «o». Но что такое 0x043E в Unicode? Это можно посмотреть в таблице Unicode, вот её фрагмент.

    В таблице 0x043E соответствует кириллическому символу, который выглядит так же, как английское «o». То есть настоящим файлом hosts на самом деле является скрытый файл, именно он используется операционной системой. Если открыть этот файл, то сразу видно отличие от фальшивого, это две строчки внизу на несколько экранов от начала:

    Это уже не первый раз, когда мы обнаружили использование хакерами кодировки Unicode для вредоносных целей. В августе 2010 года один китайский хакер продемонстрировал приём, как использовать управляющие символы Unicode, чтобы убедить пользователей в безопасности файла. С помощью управляющего символа 0x202E (RLO) можно изменить порядок символов при отображении названия файла в Windows Explorer.

    Например, вот потенциально опасный файл picgpj.exe

    Если перед частью названия «gpj.exe» вставить управляющий символ, то порядок символов меняется и имя файла отображается в Проводнике уже иначе:

    Хакеры обычно используют картинку в качестве иконки для этого файла. Неосторожный пользователь может принять её за фотографию и открыть двойным щелчком, тем самым запуская программу. Очевидно, этот приём бесполезен для программ с поддержкой Юникода, но пользователи не всегда сами могут распознать опасность.

    Можно ли верить своим глазам? Получается, что не всегда.

    Источник

    Читайте также:  Program php on windows
  • Оцените статью