将缓冲区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'); // ^ 'Сначала создается решетка пространства воображения. <div><br></div><div>Затем на'
new Buffer(...)
已被弃用了一段时间,去Buffer.from(...)
一个简单的例子可能是:
var utf8encoded = Buffer.from(base64encoded, 'base64').toString('utf8');