我的应用程序导入GMail的Notes文件夹中的所有邮件。我使用imap npm模块。
使用他们的github页面中的示例,我将消息的所有内容都放入缓冲区:
stream.on('data', function(chunk) {
count += chunk.length;
buffer += chunk.toString('utf8');
});
然而,我得到的是像
这样的句子 0KHQvdCw0YfQsNC70LAg0YHQvtC30LTQsNC10YLRgdGPINGA0LXRiNC10YLQutCwINC/0YDQvtGB 0YLRgNCw0L3RgdGC0LLQsCDQstC+0L7QsdGA0LDQttC10L3QuNGPLiZuYnNwOzxkaXY+PGJyPjwv ZGl2PjxkaXY+0JfQsNGC0LXQvCDQvdCwI
(俄语转换错误)
我发现这些是在base64中编码的文本片段,为了阅读它们,我需要将它从base64转换为utf8。
有时还会出现恼人的=字符,无处不在......
letting them f= all on her shoulders
你知道我怎么能摆脱这两个问题吗?
谢谢!
答案 0 :(得分:14)
new Buffer(...)
已弃用一段时间了,请转到Buffer.from(...)
一个简单的例子可能是:
var utf8encoded = Buffer.from(base64encoded, 'base64').toString('utf8');
答案 1 :(得分:13)
要从base64编码的String
转换为utf8,您可以使用以下内容:
var base64encoded = '0KHQvdCw0YfQsNC70LAg0YHQvtC30LTQsNC10YLRgdGPINGA0LXRiNC10YLQutCwINC/0YDQvtGB 0YLRgNCw0L3RgdGC0LLQsCDQstC+0L7QsdGA0LDQttC10L3QuNGPLiZuYnNwOzxkaXY+PGJyPjwv ZGl2PjxkaXY+0JfQsNGC0LXQvCDQvdCwI';
var utf8encoded = (new Buffer(base64encoded, 'base64')).toString('utf8');
// ^ 'Сначала создается решетка пространства воображения. <div><br></div><div>Затем на'