UTILS.
100% в браузере
✉️

Кодирование и декодирование Quoted-Printable

Кодируйте текст в MIME Quoted-Printable или декодируйте из него (экранирование =XX, мягкие переносы строк), с режимом тела и вариантом заголовка 'Q' по RFC 2047.

Введите текст выше, чтобы закодировать или декодировать.

Об этом инструменте

Инструмент кодирования и декодирования Quoted-Printable преобразует текст в MIME Quoted-Printable и обратно — это кодировка content-transfer, используемая в email для текста, который в основном ASCII с редкими не-ASCII байтами. Кодирование (по RFC 2045 §6.7) пропускает печатный ASCII (33–126) без изменений, кроме самого '=', который становится =3D. Любой байт вне этого диапазона — символы с диакритикой, символы и многобайтовые последовательности UTF-8 — записывается как =HH прописным hex. Литеральные пробелы и табуляции сохраняются, кроме конца строки, где они кодируются как =20 или =09, чтобы пережить транспортировку.

Всё выполняется локально в вашем браузере, и ничего не загружается на сервер. В режиме тела кодировщик обеспечивает лимит в 76 символов на строку, вставляя мягкий перенос строки — '=' непосредственно перед CRLF — и он никогда не разбивает триплет =HH через перенос. Декодирование обращает всё это: оно удаляет мягкие переносы ('=', за которым следует перенос строки), превращает каждый =HH обратно в его байт и оставляет все остальные символы как есть, наконец интерпретируя восстановленные байты как UTF-8, чтобы текст с диакритикой и не-латинский текст преобразовывался туда-обратно корректно.

Селектор режима переключает между стандартным кодированием тела и вариантом заголовка 'Q' по RFC 2047, используемым внутри encoded-words =?charset?Q?...?=. В варианте заголовка пробел представляется подчёркиванием '_' (а литеральный '_' кодируется как =5F), которое декодер отображает обратно в пробел. Выберите направление и режим, вставьте текст и скопируйте результат.

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

Для чего используется Quoted-Printable?
Это кодировка content-transfer для email для текста, который в основном ASCII, но имеет некоторые не-ASCII байты. Она сохраняет читаемые символы разборчивыми, при этом безопасно экранируя байты, которые могли бы измениться при передаче, в отличие от Base64, который затемняет всё сообщение.
Что такое мягкий перенос строки?
Чтобы соблюсти лимит в 76 символов на строку, кодировщик завершает перенесённую строку конечным '=' прямо перед CRLF. Этот '=' — мягкий перенос: он означает «эта строка продолжается», поэтому декодер соединяет строки обратно, и он не является частью данных.
Чем режим заголовка 'Q' отличается от режима тела?
Вариант 'Q' по RFC 2047 (используемый внутри encoded-words =?UTF-8?Q?...?= в заголовках) представляет пробел как подчёркивание '_' вместо =20 и кодирует литеральное подчёркивание как =5F. Режим тела сохраняет пробелы литеральными и применяет мягкий перенос по 76-й колонке.
Обрабатывает ли он Unicode / UTF-8 корректно?
Да. При кодировании каждый символ преобразуется в его байты UTF-8, и любой байт вне 33–126 становится =HH. При декодировании все декодированные байты собираются и читаются как UTF-8, так что многобайтовые символы вроде é, £ и — преобразуются туда-обратно точно.

Больше инструментов