ИТ-MAIL-001verifiedRFC 2045 + 2047ревизия 2026-05-07

Перекодировка писем с iPhone

Восстановление текста писем, пришедших с iPhone в неверной кодировке. Декодирование Quoted-Printable, Base64, =?UTF-8?B?…?= в заголовках. Локально в браузере без отправки на сервер.

⏱ ~5 сек · QP + Base64 + RFC 2047 · авто-определение
Отчёт · ИТ-MAIL-001|MIME-декодирование
calcal.ru / perekodirovka-pisem-iphone-onlajn
Загрузка калькулятора…
UTF-8
Кодировка iOS Mail.app
QP
Quoted-Printable RFC 2045
=?B?
Base64 заголовки RFC 2047
локально
Все вычисления в браузере

Почему iPhone-письма ломаются у получателя

iOS Mail.app — современный почтовый клиент, отправляющий письма строго в UTF-8 с MIME-кодированием Quoted-Printable (для текста) или Base64 (для вложений). Это правильно: UTF-8 — универсальный стандарт, поддерживающий весь Unicode. Проблемы возникают у получателя, если его клиент устарел: Outlook 2003 и более ранние, Lotus Notes 6, корпоративный Exchange до 2010, а также некоторые старые веб-интерфейсы провайдеров. Калькулятор решает проблему получателя: вставить искажённый текст → получить читаемый.

MIME — стандарт почтовых кодировок

Структура почтового сообщения регламентирована RFC 5322 (формат) и RFC 2045–2049 (MIME — Multipurpose Internet Mail Extensions). Тело письма с не-ASCII текстом кодируется одним из методов:

  • Quoted-Printable (QP) — каждый не-ASCII байт → `=XX` (hex). Для русского +30–50% размера.
  • Base64 — каждые 3 байта → 4 ASCII-символа. Размер +33%, без читаемых фрагментов.
  • 7bit — только ASCII (для английского).

Заголовки (Subject, From, To) с кириллицей кодируются по RFC 2047: =?Charset?Encoding?Text?=. Например: =?UTF-8?B?0J/RgNC40LLQtdGCIQ==?= — это Base64-кодированный «Привет!».

The Quoted-Printable encoding is intended to represent data that largely consists of octets that correspond to printable characters in the US-ASCII character set, but allows arbitrary octets to be represented as well.RFC 2045, Multipurpose Internet Mail Extensions

Как исправить кракозябры в письме

Алгоритм: 1) Извлеките исходник письма (View Source). 2) Найдите Content-Transfer-Encoding в заголовке части. 3) Вставьте искажённую часть в калькулятор → получите читаемый UTF-8. Для типичной кириллической iPhone-почты в QP калькулятор делает это в один клик.

Альтернативные решения для регулярной проблемы: общий декодер кракозябр, декодер кириллицы, или ручная конвертация через iconv в Linux/WSL.

ИСТОЧНИКИ
  1. RFC 2045 — Multipurpose Internet Mail Extensions Part One. IETF. rfc-editor.org. 1996. ↗ ссылка
  2. RFC 2047 — MIME Part Three: Message Header Extensions for Non-ASCII Text. IETF. rfc-editor.org. 1996. ↗ ссылка
  3. RFC 5322 — Internet Message Format. IETF. rfc-editor.org. 2008. ↗ ссылка
  4. Apple Developer — Mail.app Encoding Guide. Apple. developer.apple.com. 2024.
  5. Microsoft 365 — Outlook Encoding Settings. Microsoft. learn.microsoft.com. 2024.
РАЗДЕЛ 04 · НЮАНСЫ

Особенности iOS Mail

01
iOS Mail.app и кодировка

Mail.app по умолчанию отправляет письма в UTF-8 с кодированием Quoted-Printable или Base64 для текста и вложений. Если получатель использует устаревший почтовый клиент (Outlook 2003, Lotus Notes 6, Mailru веб-mail до 2018), автодекодирование может не сработать — текст приходит в виде «=D0=9F=D1=80=D0=B8=D0=B2=D0=B5=D1=82» или с кракозябрами.

02
Quoted-Printable

Quoted-Printable (QP, RFC 2045) — кодирование 8-битных байтов в ASCII через `=XX`, где XX — двузначный hex. Например, символ «П» (U+041F = D0 9F в UTF-8) кодируется как `=D0=9F`. Калькулятор автоматически декодирует QP перед отображением.

03
Base64 в письмах

Если в заголовке письма есть `Content-Transfer-Encoding: base64`, всё тело — это Base64-строка. После декодирования — UTF-8 текст. iOS Mail чаще использует QP для текста, Base64 — для вложений.

04
Заголовки Subject

Кириллический Subject в письме кодируется по RFC 2047: `=?UTF-8?B?...?=` (Base64) или `=?UTF-8?Q?...?=` (Quoted-Printable). Если получатель видит «=?UTF-8?B?0J/RgNC40LLQtdGCIQ==?=» — это означает, что MIME-декодер не отработал. Калькулятор распознаёт оба формата.

РАЗДЕЛ 05 · ПЛАН ДЕЙСТВИЙ

От кракозябр к читаемому тексту

01СОХРАНИТЬ ОРИГИНАЛ

Source code письма

В Outlook: View Source. В Gmail: «Show Original». В Mail.ru: меню → «Просмотр исходного». В iOS Mail.app: переслать на gmail и там посмотреть. Найдите искажённую часть.

02РАСКОДИРОВАТЬ

QP/Base64 → UTF-8

Вставьте в калькулятор. Авто-определение QP (по `=XX`) или Base64 (по `=?...?B?` в заголовке). Получите читаемый русский текст.

03ОТВЕТ

Не пересылать сломанное

Если получатель просит «не присылай в кракозябрах», проблема обычно у него (старый клиент). Альтернативы: отправить через Gmail/Yandex.Почту, попросить открыть на телефоне, использовать переписку через WhatsApp/Telegram.

ЧАСТЫЕ ВОПРОСЫ

Часто задаваемые вопросы

iPhone Mail.app отправляет в UTF-8 с кодированием Quoted-Printable (QP). Современные почтовые клиенты (Gmail, Outlook 2010+, Mail.ru, Яндекс) автоматически декодируют QP. Старые клиенты (Outlook 2003 и раньше, Lotus Notes 6, корпоративный Exchange до 2010) не понимают QP в русском тексте — выводят сырое «=D0=9F=D1=80=D0=B8=D0=B2=D0=B5=D1=82». Решение — раскодировать через калькулятор: вставить искажённый текст, получить читаемый. Для регулярной переписки — попросите получателя обновить клиент или использовать веб-интерфейс почты.
Это формат RFC 2047 для кодирования заголовков (Subject, From, To) с не-ASCII символами. Структура: `=?Charset?Encoding?Encoded-Text?=`, где Charset — кодировка (обычно UTF-8), Encoding — B (Base64) или Q (Quoted-Printable). Например, `=?UTF-8?B?0J/RgNC40LLQtdGCIQ==?=` — это Base64-кодированный «Привет!». Современные клиенты автоматически декодируют, старые — выводят как есть. Калькулятор понимает оба формата (B и Q).
Quoted-Printable (QP, RFC 2045) — для текста с минимумом не-ASCII символов: ASCII печатается как есть, не-ASCII байты кодируются как `=XX` (hex). Длина увеличивается на 30–50% для русского текста. Base64 — для бинарных данных и плотного кодирования: каждые 3 байта → 4 ASCII-символа, увеличение строго +33%. iOS Mail для обычного русского текста использует QP, для вложений (изображения, PDF) — Base64. Telegram и WhatsApp используют свои кодировки, не MIME.
Outlook (Windows): открыть письмо → File → Properties → Internet headers → копировать «Source». Gmail: открыть письмо → меню три точки → «Show original» → копировать. Yandex.Почта: меню → «Свойства письма» → «Заголовки и тело». Mail.ru: меню три точки → «Служебные заголовки». iOS Mail: переслать на Gmail и посмотреть там. PowerShell для Outlook: `Get-MailMessage | Select-Object -Property Body`. Сохранённый исходник вставляйте в калькулятор для декодирования.
Нет, отправленное письмо не редактируется. Можно отправить дубликат с правильным текстом и пометкой «исправление к предыдущему письму». Если получатель регулярно жалуется на кракозябры от вас, проверьте: 1) Настройки кодировки в вашем клиенте — должна быть UTF-8 (Mail.app → Preferences → Composing → Encoding). 2) Подпись и шаблоны — иногда вставляются в неправильной кодировке. 3) Цитирование исходного письма — если форвардите старое письмо в CP1251, при пересылке оно сломается.
Никак — iOS Mail.app не поддерживает выбор кодировки кодирующего символа, всегда UTF-8. Это сделано умышленно: UTF-8 — единственная кодировка, гарантирующая корректную работу с любым текстом мира (русский, китайский, эмодзи). Если получатель не принимает UTF-8 — это проблема его настроек или старого клиента. Альтернативы для отправки в CP1251: 1) Использовать веб-интерфейс почты (Mail.ru, Yandex), там в настройках можно выбрать. 2) Использовать сторонний почтовый клиент типа Outlook for iOS с настройками. 3) Решить проблему на стороне получателя.
Если архив писем (Outlook PST, Thunderbird MBOX) содержит много писем в кракозябрах, нужна пакетная конвертация. Для PST: Outlook → File → Open & Export → Import/Export → Export to file → CSV → ручная или скриптовая обработка. Для MBOX: Python-скрипт с библиотекой `mailbox` и `email`. Ручной перебор через калькулятор — для одиночных писем. Для архивов 1000+ писем стоит обратиться к специалисту по data recovery — они используют профессиональные утилиты типа MailStore Server с восстановлением кодировок.
Если эмодзи были закодированы в UTF-8 (стандарт для iOS), они сохранились в виде Quoted-Printable: `=F0=9F=98=80` для 😀 (U+1F600). Калькулятор корректно декодирует QP с эмодзи в Unicode. Если эмодзи прошли через старый CP1251-сервер, который заменил их на «?» — восстановление невозможно, информация потеряна. Аналогично если эмодзи были замены на «?» в логах антивируса/спам-фильтра. Для гарантированного сохранения эмодзи в корпоративной переписке — отправлять через UTF-8-совместимые сервисы (Gmail, M365 с включённой UTF-8) или мессенджеры (Telegram, Slack).
Лиана Арифметова
АВТОРverifiedред. calcal.ru

Лиана Арифметова

Создатель и главный редактор

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

Mathematical Engineering · МФТИ · редактирует каталог с 2012 года

Был ли этот калькулятор полезен?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Инструмент справочный — не заменяет эксперта

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

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

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

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