Я пытаюсь отправить электронное письмо с Emoji \ ud83d \ udc49 в теле. Этот смайлик уже был помещен в шаблон AWS SES. Поиск строки HTML из SES с использованием следующей функции: < /p>
getAndFillSESEmailTemplate: (templateName, templateData) => {
return new Promise((resolve, reject) => {
var params = {
TemplateName: templateName
};
ses.getTemplate(params, (err, data) => {
if(err){
return reject(err);
}
var templateHTML = data.Template.HtmlPart;
var templateDataKeys = Object.keys(templateData);
templateDataKeys.forEach((key)=>{
console.log(key);
templateHTML = templateHTML.replaceAll('{{'+key+'}}', templateData[key])
})
return resolve(templateHTML);
});
});
},
< /code>
Я установил приведенный ниже тип кодирования для необработанных данных электронной почты: < /p>
var htmlEntity = mimemessage.factory({
contentType: "text/html;charset=utf-8",
body: bodyData, //HTML data from AWS SES Template
});
< /code>
Когда я отправляю электронное письмо, он не отображает эмодзи и вместо этого отображает код \ ud83d \ udc49. однако Когда я копирую точный HTML в переменную, подобную ниже, эмоджи отображается правильно:
var copiedHTML = `**exact copy of what is being provided by AWS SES HtmlPart**`
var htmlEntity = mimemessage.factory({
contentType: "text/html;charset=utf-8",
body: copiedHTML, //Copy paste value from SES Template
});
< /code>
Я прочитал, что это связано с тем, как строковые переменные кодируются в JavaScript, но мне нужно некоторое руководство. Я не могу найти решение, которое объясняет Почему выше.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... -in-nodejs