将缓冲区base64 – > utf8编码为node.js

我的应用程序从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 

你知道我怎样才能摆脱这两个问题?

谢谢!

为了从base64编码的String转换为utf8,你可以使用下面的代码:

 var base64encoded = '0KHQvdCw0YfQsNC70LAg0YHQvtC30LTQsNC10YLRgdGPINGA0LXRiNC10YLQutCwINC/0YDQvtGB 0YLRgNCw0L3RgdGC0LLQsCDQstC+0L7QsdGA0LDQttC10L3QuNGPLiZuYnNwOzxkaXY+PGJyPjwv ZGl2PjxkaXY+0JfQsNGC0LXQvCDQvdCwI'; var utf8encoded = (new Buffer(base64encoded, 'base64')).toString('utf8'); // ^ 'Сначала создается решетка пространства воображения.&nbsp;<div><br></div><div>Затем на' 

new Buffer(...)已被弃用了一段时间,去Buffer.from(...)

一个简单的例子可能是:

 var utf8encoded = Buffer.from(base64encoded, 'base64').toString('utf8');