Javascript 如何在从节点imap接收数据时检查字符串是否为base64编码

Javascript 如何在从节点imap接收数据时检查字符串是否为base64编码,javascript,node.js,encoding,base64,Javascript,Node.js,Encoding,Base64,关于StackOverflow,有一些答案,但没有一个适合我 我在Node.Js应用程序中混合了来自Google邮箱导入的数据(一些在utf-8中,一些在base64中),我需要检查每个字符串是否在base64中 有人有有效的解决方案吗 数据示例 0KHQvdCw0YfQsNC70LAg0YHQvtC30LTQsNC10YLRgdGPINGA0LXRiNC10YLQutCwINC/0YDQvtGB 0YLRgNCw0L3RgdGC0LLQsCDQstC+0L7QsdGA0LDQttC10L3Qu

关于StackOverflow,有一些答案,但没有一个适合我

我在Node.Js应用程序中混合了来自Google邮箱导入的数据(一些在utf-8中,一些在base64中),我需要检查每个字符串是否在base64中

有人有有效的解决方案吗

数据示例

0KHQvdCw0YfQsNC70LAg0YHQvtC30LTQsNC10YLRgdGPINGA0LXRiNC10YLQutCwINC/0YDQvtGB
0YLRgNCw0L3RgdGC0LLQsCDQstC+0L7QsdGA0LDQttC10L3QuNGPLiZuYnNwOzxkaXY+PGJyPjwv
ZGl2PjxkaXY+0JfQsNGC0LXQvCDQvdCwINC90LXQtSDQvdCw0L3QuNC30YvQstCw0LXRgtGB0Y8g
0LLRi9C80YvRgdC10LsuPC9kaXY+PGRpdj48
代码来获取它,但我只保留消息文本,即

msg.on('body', function(stream, info) { 
  stream.on('data', function(chunk) {
    count += chunk.length;
    buffer += chunk.toString('utf8');
  }
}

问题是我通过node.Js的node imap模块接收的数据在参数中包含两个不同的编码参数:

attrs.struct[0].params.charset
将所有消息设置为utf-8编码

attrs.struct[0].encoding
对于采用base64编码的消息,将设置为base64

因此,我将变量中的两个参数传递给了
msg。一旦('end')
,请检查attrs.struct[0]。编码是否为base64,并将这些字符串从base64转换为utf-8:

statement = new Buffer(email, 'base64').toString('utf8');
其余的都是通过网络控制的

statement = mimelib.decodeQuotedPrintable(email);

寻找mime头-看看这里的例子@mplungjan还有其他建议吗?我不能得到那个信息,为什么不能?您是否将它们作为单独的附件获取?@mplungjan不,我没有。在测试B64兼容性之前,请查看字符串是否为固定长度且没有空格您的最后一个链接已失效