Как пользоваться
- Выберите «Закодировать» или «Декодировать».
- Вставьте текст. Для декодирования вставляйте только ту часть тела письма, где указано Content-Transfer-Encoding: quoted-printable, без заголовков.
- Для старых писем выберите кодировку из заголовка Content-Type.
- Скопируйте результат.
Как это работает
Кодирование (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.