Декодируйте =?ISO-2022-JP?B?…?= и другие MIME-кодировки

Японская тема письма, которая приходит как =?ISO-2022-JP?B?GyRC…?=, не повреждена — она просто одета в свою транспортную кодировку. Инструмент её снимает, а когда нужно — надевает обратно.

Загружаем инструмент…

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

  1. Вставьте заголовок, часть тела письма или одно слово вида =?…?=.
  2. Нажмите «Decode» («Декодировать»); каждое закодированное слово перечисляется вместе со своей кодировкой.
  3. Чтобы пойти в обратную сторону, введите текст в поле кодирования ниже.

Почему ничего не отправляется на сервер

Всё, что делает эта страница, выполняет код внутри вкладки вашего браузера — тем же движком, который рисует веб-страницы. Файл читается с диска в память вкладки, преобразуется там и записывается обратно как загружаемый файл. Он никуда не отправляется — ни нам, ни третьей стороне.

Проверьте сами

  1. Откройте инструменты разработчика в браузере (F12) и перейдите на вкладку «Сеть» (Network).
  2. Загрузите свой файл и запустите инструмент.
  3. Единственные запросы, которые вы увидите, — это код самого инструмента, а у нескольких тяжёлых инструментов ещё и их открытый движок из публичного CDN, плюс один небольшой сигнал о просмотре страницы на loreatec.jp (адрес и заголовок страницы, больше ничего). Ни один из них не несёт ваш файл.

Проверьте, что файлы не уходят →

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

Что такое encoded word?

По изначальному стандарту заголовки писем — это только ASCII. RFC 2047 обходит это, оборачивая текст не из ASCII в =?charset?encoding?text?=, где кодировка — это B (base64) или Q (вариант quoted-printable). Каждый почтовый клиент декодирует это для отображения, поэтому в обычной жизни вы этого никогда не видите — пока что-то не покажет вам сырой заголовок.

Стоит ли до сих пор использовать ISO-2022-JP?

Для заголовков, идущих на японские мобильные сети и на по-настоящему старые системы, это остаётся самым безопасным выбором. Но в этой кодировке нельзя передать ①, ㈱, ~, половину символов, которые люди вставляют из Word, и вообще никакие эмодзи: они приходят как ? или пропадают совсем. UTF-8 передаёт всё и принимается любым современным получателем, включая всех трёх операторов уже сегодня.

Почему кодировщик предлагает только UTF-8?

Потому что браузеры умеют декодировать ISO-2022-JP, Shift_JIS и EUC-JP, но не умеют в них кодировать — TextEncoder производит только UTF-8. Предлагать эти варианты и молча возвращать UTF-8 было бы как раз той тихой неправдой, ради разоблачения которой этот инструмент и существует. Декодирование поддерживает их все.

B или Q?

Для японского — B: в Q пришлось бы экранировать почти каждый байт, поэтому base64 выходит короче. Для текста, в основном латинского с несколькими диакритическими знаками, Q оставляет заголовок читаемым, что помогает при чтении сырого исходника.