Javascript 转换缓冲区base64->;utf8编码节点.js
我的应用程序从GMail的Notes文件夹导入所有邮件。我使用imap npm模块来实现这一点 使用github页面中的示例,我将消息的所有内容放入缓冲区:Javascript 转换缓冲区base64->;utf8编码节点.js,javascript,node.js,encoding,utf-8,base64,Javascript,Node.js,Encoding,Utf 8,Base64,我的应用程序从GMail的Notes文件夹导入所有邮件。我使用imap npm模块来实现这一点 使用github页面中的示例,我将消息的所有内容放入缓冲区: stream.on('data', function(chunk) { count += chunk.length; buffer += chunk.toString('utf8'); }); 然而,我得到的是这样的句子 0KHQvdCw0YfQsNC70LAg0YHQvtC30LTQsNC10YLRgdGPI
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编码的
字符串转换为utf8,可以使用以下命令:
var base64encoded = '0KHQvdCw0YfQsNC70LAg0YHQvtC30LTQsNC10YLRgdGPINGA0LXRiNC10YLQutCwINC/0YDQvtGB 0YLRgNCw0L3RgdGC0LLQsCDQstC+0L7QsdGA0LDQttC10L3QuNGPLiZuYnNwOzxkaXY+PGJyPjwv ZGl2PjxkaXY+0JfQsNGC0LXQvCDQvdCwI';
var utf8encoded = (new Buffer(base64encoded, 'base64')).toString('utf8');
已被弃用一段时间了,请继续
一个简单的例子可能是:
var utf8encoded = Buffer.from(base64encoded, 'base64').toString('utf8');
为了从base64转换为utf8,您可以使用(新缓冲区(原始'base64'))。toString('utf8')
。你能提供更多关于=
问题的详细信息吗?@jabclab这一方法有效,但仅适用于仅包含俄语的缓冲区。如果缓冲区中只有英文文本或英文和俄文,则会产生胡言乱语。我想我需要在转换之前运行一些脚本来识别编码,对吗?@jabclab关于=问题-出于某种原因,有时=符号会随机插入文本中。我似乎找不到它的确切位置。。。谢谢大家!@jabclab你能把它作为一个答案发布吗,因为它对我来说非常有效?newbuffer()
不推荐使用稳定性:0,请参阅。