Quoted-printable: кодирование и декодирование

Quoted-printable — кодировка почты, которая превращает «П» в =D0=9F и разрывает длинные строки знаком = в конце. Вставьте текст, чтобы закодировать его, или тело письма в исходном виде, чтобы снова сделать его читаемым.

Режим

Работает в браузере: всё, что вы вводите, никуда не отправляется.

Как пользоваться

  1. Выберите «Закодировать» или «Декодировать».
  2. Вставьте текст. Для декодирования вставляйте только ту часть тела письма, где указано Content-Transfer-Encoding: quoted-printable, без заголовков.
  3. Для старых писем выберите кодировку из заголовка Content-Type.
  4. Скопируйте результат.

Как это работает

Кодирование (RFC 2045, раздел 6.7):

  • текст переводится в байты UTF-8;
  • байты 33–126, кроме =, пишутся как есть; = становится =3D; любой другой байт — =XX заглавными шестнадцатеричными цифрами;
  • пробел или табуляция остаются, если это не последний символ строки;
  • переводы строк текста сохраняются. Строка длиннее 76 символов разрывается мягким переносом: не больше 75 символов и =. Группа =XX никогда не разрывается.

Декодирование убирает пробелы в конце каждой строки, склеивает строки, оканчивающиеся на =, переводит каждое =XX в байт и читает байты в выбранной кодировке.

Пример

Привет в UTF-8 кодируется как =D0=9F=D1=80=D0=B8=D0=B2=D0=B5=D1=82: каждая буква кириллицы — два байта, например П — D0 9F.

Café = 5€ превращается в Caf=C3=A9 =3D 5=E2=82=AC: é — два байта C3 A9, знак = становится =3D, € — три байта E2 82 AC, пробелы остаются.

Те же буквы «Привет» в старом письме в Windows-1251 выглядят как =CF=F0=E8=E2=E5=F2 — по одному байту на букву; выберите эту кодировку, и декодер прочитает их правильно.

Советы

  • Видите в письме =E2=80=94 или =C2=A0? Это UTF-8 для длинного тире и неразрывного пробела.
  • Почтовые протоколы используют концы строк CRLF; инструмент работает с обычными переводами строк, а CR добавляет почтовая программа.
  • Вложения и двоичные данные в письмах кодируются в Base64 — для них есть кодировщик Base64.

Частые вопросы

Что такое quoted-printable?

Кодировка для передачи писем из RFC 2045. Печатные символы ASCII остаются как есть, поэтому латиница читается, а каждый другой байт пишется как = и две шестнадцатеричные цифры. Строки держатся короче 76 символов с помощью мягких переносов.

Что такое мягкий перенос?

Знак = в самом конце строки. Он значит, что строку разорвали только ради длины, и декодер склеивает её со следующей без перевода строки.

Почему пробел в конце строки становится =20?

Почтовые программы могут срезать пробелы и табуляции в конце строк, поэтому кодировщик пишет такой пробел как =20, а табуляцию — как =09. Пробелы внутри строки остаются как есть.

Какую кодировку выбрать при декодировании?

Ту, что указана в заголовке письма, например Content-Type: text/plain; charset="windows-1251". Большинство писем сегодня в UTF-8, старые русские — часто в Windows-1251 или KOI8-R. Кодирование всегда идёт в UTF-8.

Что происходит с одиночным знаком =?

Знак =, за которым нет двух шестнадцатеричных цифр и который стоит не в конце строки, — это ошибка в quoted-printable. Декодер оставляет его как есть и сообщает, сколько таких нашёл.

Ещё в разделе «Разработчикам»

Все инструменты раздела: Разработчикам ·Обновлено 4 ноября 2026 г.

Настройки конфиденциальности

Google Analytics показывает нам, какими инструментами пользуются и работают ли они. Он может ставить cookie. Ваш выбор сохраняется в этом браузере.