Приводим русские тексты на 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 почтовый клиент много за что можно похвалить, есть у него и весьма значительные недостатки. Например, присылает вам пользователь Windows письмо, а в итоге вы получаете кракозябры в названии писем в почтовом клиенте Mac, а нередко и в самом тексте письма. Очевидно, что в такой ситуации имеют место проблемы с кодировкой Mac OS.
Как их решить?
Как минимум, сперва удалите из системы все языки, которые не используете, тогда Mac OS кодировка имен файлов намного реже станет путаться. Это делается так. В системных настройках выбираете Язык и регион и видите вот что.
Далее настраиваем сам Mail клиент.
Открываем приложение Почта, в верхнем меню нажимаем Почта > Настройки.
Далее переходим в Формат, указываем, чтобы там был Простой текст. Тогда все излишние форматирования отключатся и вероятность получения «кракозябр» еще значительно уменьшится.
И отметьте галочку, чтобы в ответном сообщении адресату применялся тот же формат, что и в исходном.
Попросите получателя проверить настройки собственного почтового клиента. Лучше всего будет для Mac OS, чтобы и вы, и он использовали кодировку UTF-8.
Если все вышеперечисленные простые инструкции были выполнены без ошибок, скорее всего, кракозябры исчезнут.
Если по каким-то причинам связаться с получателем невозможно, кроме как через ту же почту, то попытайтесь самостоятельно определить, что за кодировку он использует сейчас. Откройте любое «кракозяберное» письмо и переберите все кириллические кодировки. Если вы нашли, допустим, что это та самая UTF-8, то зафиксировать ее можно открытием Терминала и введением команды:
defaults write com.apple.mail NSPreferredMailCharset utf-8
Приятной вам работы с почтовым клиентом Mac OS!
Источник
Кодировка кириллицы в Mac OS — Mac OS Cyrillic encoding
Псевдоним (а) | x-mac-кириллица Оригинальная версия: Кодовая страница 1283, Кодовая страница 10007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Язык (и) | русский, болгарский, Белорусский, македонский, сербский (кириллицей) Обновление евро: украинец | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Сделано | Apple, Inc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Классификация | Расширенный ASCII, Скрипт Mac OS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Расширяется | US-ASCII | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
На основе | Обновление евро на основе MacУкраинский, в свою очередь, на основе оригинальной версии. Небуквенные символы в основном из Mac OS Роман. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
8_ 128 | А 0410 | Б 0411 | В 0412 | Г 0413 | Д 0414 | Е 0415 | Ж 0416 | З 0417 | И 0418 | Й 0419 | К 041A | Л 041B | М 041C | Н 041D | О 041E | П 041F |
9_ 144 | Р 0420 | С 0421 | Т 0422 | У 0423 | Ф 0424 | Х 0425 | Ц 0426 | Ч 0427 | Ш 0428 | Щ 0429 | Ъ 042A | Ы 042B | Ь 042C | Э 042D | Ю 042E | Я 042F |
A_ 160 | † 2020 | ° 00B0 | Ґ 0490 | £ 00A3 | § 00A7 | • 2022 | ¶ 00B6 | І 0406 | ® 00AE | © 00A9 | ™ 2122 | Ђ 0402 | ђ 0452 | ≠ 2260 | Ѓ 0403 | ѓ 0453 |
B_ 176 | ∞ 221E | ± 00B1 | ≤ 2264 | ≥ 2265 | і 0456 | µ 00B5 | ґ 0491 | Ј 0408 | Є 0404 | є 0454 | Ї 0407 | ї 0457 | Љ 0409 | љ 0459 | Њ 040A | њ 045A |
C_ 192 | ј 0458 | Ѕ 0405 | ¬ 00AC | √ 221A | ƒ 0192 | ≈ 2248 | ∆ 2206 | « 00AB | » 00BB | … 2026 | NBSP 00A0 | Ћ 040B | ћ 045B | Ќ 040C | ќ 045C | ѕ 0455 |
D_ 208 | – 2013 | — 2014 | “ 201C | ” 201D | ‘ 2018 | ’ 2019 | ÷ 00F7 | „ 201E | Ў 040E | ў 045E | Џ 040F | џ 045F | № 2116 | Ё 0401 | ё 0451 | я 044F |
E_ 224 | а 0430 | б 0431 | в 0432 | г 0433 | д 0434 | е 0435 | ж 0436 | з 0437 | и 0438 | й 0439 | к 043A | л 043B | м 043C | н 043D | о 043E | п 043F |
F_ 240 | р 0440 | с 0441 | т 0442 | у 0443 | ф 0444 | х 0445 | ц 0446 | ч 0447 | ш 0448 | щ 0449 | ъ 044A | ы 044B | ь 044C | э 044D | ю 044E | € 20AC |
Письмо
Следующие кодовые точки были переопределены с момента первоначального определения кодировки кириллицы Macintosh: [1]
Источник