- Кривые файлы txt. Или как настроить кодировку на Mac
- Решение проблемы
- Вики IT-KB
- Инструменты пользователя
- Инструменты сайта
- Боковая панель
- Решение проблемы кодировок в архивах в macOS и отправка созданного архива почтой
- Приводим русские тексты на Mac OS X в одну кодировку Python-скриптом
- Проблемы с кодировкой в Mail и их возможные решения
Кривые файлы 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 и радуемся.
Если помогла статья, не ленись. Нажми кнопку — поделись! )
Источник
Вики 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 в меню файлов и папок в подменю Сервисы.
Источник
Проблемы с кодировкой в Mail и их возможные решения
Встроенный почтовый клиент Mac OS X с логичным и незамысловатым названием Mail есть за что похвалить — например, за развитую систему фильтрации писем на основе правил, за поддержку дополнительных плагинов, расширяющих возможности почты (вроде шифрования), за тесную интеграцию с клиентом iPhone и т.д. Но поводов для недовольства у пользователей Mail тоже хватает, особенно если они проживают не в англоговорящих странах. Главный повод — кодировка. Пожалуй, нет ни одного русского владельца Мака, который не сталкивался в Mail.app с тем, что принято называть словом «кракозябры» — это символьные шедевры вроде ÈØàÞÚÐï íÛÕÚâàØäØÚÐæØï, аЈаИб�аОаКаАб� б�аЛаЕ или даже Ð¨Ð¸Ñ€Ð¾ÐºÐ°Ñ ÑлектрРв названиях тем, содержимом писем или именах вложений.
Сегодня мы расскажем вам о сущности этой проблемы и некоторых путях её решения.
Mail.app от других почтовых клиентов традиционно отличает повышенная чувствительность к тому, из какой программы было отправлено письмо. Дело в том, что разные почтовые клиенты имеют присущие только им особенности разметки и оформления электронных писем, невидимые глазу пользователя, зато воспринимаемые серверами и программами.
Проблема усугубляется ещё и тем, что в настройках Mail невозможно задать кодировку входящих писем по умолчанию — т.е. способ перевода привычных нам букв, цифр и знаков препинания в привычные компьютеру биты и байты. Mail пытается автоматически распознать кодировку входящей почты, и как-то непосредственно повлиять на этот процесс пользователь тоже не может.
Зато возможно повлиять на этот процесс косвенно. Набор кодировок, которые Mail использует для распознания, зависит от набора используемых всей системой кодировок. А Этот набор, в свою очередь, зависит от количества используемых системой языков. Отсюда вытекает первый совет — удалите из системы все неиспользуемые вами языки.
Зайдите в Системные настройки, выберите пульт «Язык и текст», и увидите следующий список:
Список языков Mac OS X
Нажмите на кнопку «Редактировать список» и снимите соответствующие галочки. После этого перезагрузите компьютер или завершите сеанс.
Представленный скриншот сделан в системе Mac OS X 10.6.2. В Mac OS X 10.5 данный пульт настроек устроен несколько иначе, однако редактирование списка языков там организовано почти так же.
Следующий шаг — это настройки самого клиента Mail. Как мы уже сказали, в программе не предусмотрено никаких постоянных настроек кодировки. Но это не значит, что их нет вообще. На самом деле, через Терминал всё-таки можно заставить Mail работать с определённой кодировкой.
Но перед тем, как задать кодировку по умолчанию, надо узнать, какая это должна быть кодировка. Это придётся делать экспериментальным путём:
- найдите несколько писем с кракозябрами
- выберите первое и зайдите в меню Сообщение — Кодировка текста
- последовательно перепробуйте все кодировки, начинающиеся со слова «Кириллическая» (KOI8-R, ISO 8859-5, Windows), а также UTF-8
- если письмо стало читабельным, посмотрите на остальные письма: если и их можно прочесть, то считайте, что решение найдено
- в противном случае продолжайте перебор кодировок
Меню кодировок Mail
Если вы нашли подходящую кодировку, то останется её зафиксировать. Скорее всего, это будет либо кодировка KOI8-R, либо UTF-8. Полностью завершите Mail (по комбинации Cmd+Q). Запустите Терминал (через Spotlight или из папки Программы/Служебные программы), и введите команду:
defaults write com.apple.mail NSPreferredMailCharset koi8-r
defaults write com.apple.mail NSPreferredMailCharset utf-8
После чего нажмите Enter и закройте Терминал.
Если не хотите возиться с Терминалом, то можете установить пульт настроек Secrets и сменить кодировку через него:
Смена кодировки Mail через пульт Secrets
Если предложенный выше вариант не сработает, попробуйте прописать через Терминал ещё один параметр:
defaults write com.apple.mail LeopardPreferredMailCharset utf-8
(или defaults write com.apple.mail LeopardPreferredMailCharset koi8-r)
Возможно, это поможет вам избавиться от проблем с кодировкой в темах и тексте писем. С русскими именами вложений ситуация ещё более загадочна. Многолетние наблюдения позволяют говорить о том, что в их порче виноват вовсе не Mail, а отправляющая почту программа. Например, известен глюк с письмами из Thunderbird — практически всегда имена вложений на русском приходят на Мак испорченными. Для решения этой проблемы в самом Thunderbird необходимо изменить значение параметра mail.strictly_mime.parm_folding равным единице.
Таким образом, причины и решения проблем в Mail лежат гораздо глубже, чем кажется сначала. Если же ничего не поможет, и адресованные вам письма по-прежнему будут приходить испорченными, советуем обратить внимание на другие почтовые клиенты.
Источник