> email | читаемо | mime <
// Кодировка Quoted-Printable для писем с особыми символами и многоязычным текстом при сохранении читаемости
Читаемый текст
ASCII-текст остаётся читаемым в теле письма, кодируются только специальные и не-ASCII символы.
Стандарт MIME
Стандартная MIME-кодировка для писем с международными символами и расширенным набором символов.
Поддержка Unicode
Позволяет корректно передавать Unicode-символы, сохраняя совместимость с существующей почтовой инфраструктурой.
>> техническая информация
Как работает Quoted-Printable:
Quoted-Printable кодирует 8-битные данные с помощью печатаемых ASCII-символов. Не-ASCII байты представляются как '=' и две шестнадцатеричные цифры. Длина строк обычно ограничена 76 символами с использованием «мягких» переносов строк.
Пример:
"Café" → Caf=C3=A9
Зачем использовать Quoted-Printable:
- >Сохраняет читаемость текстовых писем
- >Соответствует MIME-стандарту для email
- >Подходит для писем с единичными не-ASCII символами
- >Даёт меньший размер, чем Base64, для чистого текста
- >Помогает удовлетворять ограничения по длине строки на старых SMTP-серверах
>> часто задаваемые вопросы
Что такое кодирование Quoted-Printable?
Quoted-Printable — это схема MIME-кодирования содержимого, которая позволяет передавать 8-битные данные через 7-битные почтовые системы, сохраняя ASCII-текст читаемым.
Когда имеет смысл использовать Quoted-Printable?
Используйте Quoted-Printable для писем, которые в основном состоят из ASCII-текста, но содержат отдельные специальные символы или интернациональный текст, когда важна читаемость «как есть».
Чем Quoted-Printable отличается от Base64?
Base64 делает весь контент нечитаемым без декодирования, тогда как Quoted-Printable оставляет ASCII-текст видимым и кодирует только специальные символы, что удобнее для текстовых сообщений.
Что означает символ '=' в Quoted-Printable?
Символ '=' — это escape-символ: за ним следуют две шестнадцатеричные цифры, представляющие байт, либо он используется в конце строки для обозначения мягкого переноса.
// Краткий справочник
| Input | Output | Note |
|---|---|---|
| = | =3D | = is the escape char |
| é (UTF-8 C3 A9) | =C3=A9 | each byte of a multi-byte char |
| space/tab at end of line | =20 / =09 | trailing whitespace |
| = at end of line | (soft line break) | joins lines, max 76 chars/line |
| A–Z a–z 0–9 ! * + - / etc. | as is | printable ASCII 33–126 (except =) |
// Примеры кода
Input Café = 3 € (UTF-8)
Output Caf=C3=A9 =3D 3 =E2=82=AC
Rules RFC 2045 section 6.7
* bytes 33..126 except '=' may stay literal
* everything else -> '=' + two uppercase hex digits
* encoded lines must not exceed 76 characters
* a line ending in '=' is a soft break (no newline in the decoded data)
MIME Content-Transfer-Encoding: quoted-printable
>> Другие вопросы
В: Для чего нужен Quoted-Printable?
О: Для содержимого писем (MIME), в основном ASCII, с отдельными специальными символами. Текст остаётся читаемым, а остальные байты кодируются как =XX. Заголовок: Content-Transfer-Encoding: quoted-printable.
В: Что такое мягкий перенос строки?
О: Знак «=» в конце строки. Он позволяет разбивать длинные строки до 76 символов, не создавая перевода строки при декодировании: строки просто склеиваются.
В: Quoted-Printable или Base64?
О: QP подходит для преимущественно латинского текста: малые накладные расходы и читаемость. Для бинарных данных и не-ASCII письменности лучше Base64 с фиксированными ~33 %, тогда как QP в худшем случае тратит три символа на байт.