Кодировка UTF8 строки темы в электронном письме MIME для NodeJS

Я не могу понять, что здесь происходит. Я получил электронное письмо со следующей строкой темы в кодировке UTF8, и я не могу преобразовать его в указанную ниже кодировку.

Непреобразованный: Переход на прямые договоры узаконен!

Преобразовано: =?UTF-8?B?0J/QtdGA0LXRhdC+0LQg0L3QsCDQv9GA0Y/QvNGL0LUg?= =?UTF-8?B?0LTQvtCz0L7QstC+0YDRiyDRg9C30LDQutC+0L3QtdC9IQ==?=

Не могли бы вы помочь мне понять, что здесь происходит? Что такое кодировка MIME выше? Преобразование в строку UTF8 не соответствует тому, что я вижу выше.


person Charles Saag    schedule 30.05.2018    source источник
comment
Пакет NodeJS для кодирования — npmjs.com/package/libmime   -  person Charles Saag    schedule 30.05.2018
comment
Вышеупомянутая кодировка также выглядит разбитой на части ... Однако я не могу определить максимальное значение.   -  person Charles Saag    schedule 30.05.2018


Ответы (1)


Эти символы не покрыты ascii и закодированы в UTF-8. Кроме того, кодировка MIME темы электронной почты была выполнена с использованием UTF-8 (RFC2047).

Самое простое решение — использовать библиотеку npm rfc2047. См. пример кода ниже.

const rfc2047 = require('rfc2047');
let subjectLine = "=?UTF-8?Q?Votre_demande_de?=\n =?UTF-8?Q?_a_=C3=A9t=C3=A9_approuv=C3=A9e!?=";
let frenchSubjectLine = rfc2047.decode(subjectLine);
console.log("FR subject line after decoding: [" + frenchSubjectLine + "]");

Выход

FR subject line after decoding: [Votre demande de a été approuvée!]
person Chinthaka Senanayaka    schedule 21.12.2020