> email | читаемо | mime <

// Кодировка Quoted-Printable для писем с особыми символами и многоязычным текстом при сохранении читаемости

[ЧИТАЕМОСТЬ]

Читаемый текст

ASCII-текст остаётся читаемым в теле письма, кодируются только специальные и не-ASCII символы.

[EMAIL]

Стандарт MIME

Стандартная MIME-кодировка для писем с международными символами и расширенным набором символов.

[UNICODE]

Поддержка 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-символ: за ним следуют две шестнадцатеричные цифры, представляющие байт, либо он используется в конце строки для обозначения мягкого переноса.

// Краткий справочник

InputOutputNote
==3D= is the escape char
é (UTF-8 C3 A9)=C3=A9each byte of a multi-byte char
space/tab at end of line=20 / =09trailing whitespace
= at end of line(soft line break)joins lines, max 76 chars/line
A–Z a–z 0–9 ! * + - / etc.as isprintable 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 в худшем случае тратит три символа на байт.

Другие языки