微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何转换 UTF8 Base64 字符串电子邮件标头?

如何解决如何转换 UTF8 Base64 字符串电子邮件标头?

我有很多来自电子邮件标头的 UTF8 Base64 字符串,如下所示:

=?Utf-8?B?RW5jb2RlZCBTdHJpbmc===?=

以上字符串应转换为:

Encoded String

这里有人知道如何使用 Javascript 解码这些类型的电子邮件标头吗?

我现在正在执行以下操作,但这太难看了,我需要像这样手动搜索和替换这些字符串的开头和结尾:

var string = '=?Utf-8?B?VVRGOC1CYXNlNjQtU3RyaW5n==?=';
var decoded = string.replace("=?Utf-8?B?","").replace("==?=","");
decoded =  window.atob(decoded);
console.log(decoded);
document.getElementById('res').innerHTML = decoded;
<b>Encoded:</b><div>=?Utf-8?B?VVRGOC1CYXNlNjQtU3RyaW5n==?=</div>
<br>
<b>Decoded:</b><div id="res"></div>

目前,我将它用作函数,但肯定有比这更好的方法

function decodeBase64UTF8(from) {
 if (from.includes('=?Utf-8?B?')) {
 if (from.includes('?=')) {
 from = window.atob(from.replace("=?Utf-8?B?","").replace("?=",""));
 return from;
}
} else {
return from;
}}

函数的演示在这里https://jsfiddle.net/jarosciak/dmL7gnw6/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。