String Node.js无法解码字符串。。乱码字符(问号)

String Node.js无法解码字符串。。乱码字符(问号),string,node.js,encoding,utf-8,base64,String,Node.js,Encoding,Utf 8,Base64,我真的希望这一切都会成功,但是 我在标题中得到一个base64字符串。。。我想把它编码成UTF8 strInit = req.headers['authorization'] buf = new Buffer(strInit.length) i = 0 while i < strInit.length buf[i] = strInit.charCodeAt(i) i++ str = buf.toString() str2 = new Buffer(str, 'base64

我真的希望这一切都会成功,但是

我在标题中得到一个base64字符串。。。我想把它编码成UTF8

strInit = req.headers['authorization']
buf = new Buffer(strInit.length)
i = 0

while i < strInit.length
  buf[i] = strInit.charCodeAt(i)
  i++    
str = buf.toString()
str2 = new Buffer(str, 'base64').toString()
console.log("AUTH REQUEST :",strInit, buf, str, str2)


AUTH REQUEST : Basic dXNlckBnbWFpbC5jb206cXdlcnR5 
<Buffer 42 61 73 69 63 20 64 58 4e 6c 63 6b 42 6e 62 57 46 70 62 43 35 6a 
62 32 30 36 63 58 64 6c 63 6e 52 35> Basic dXNlckBnbWFpbC5jb206cXdlcnR5 
�"q�͕������������ݕ��
strInit=req.headers['authorization']
buf=新缓冲区(标准长度)
i=0
而我的长度
buf[i]=strInit.charCodeAt(i)
i++
str=buf.toString()
str2=新缓冲区(str,'base64')。toString()
log(“身份验证请求:”,strInit,buf,str,str2)
身份验证请求:基本dXNlckBnbWFpbC5jb206cXdlcnR5
基本dXNlckBnbWFpbC5jb206cXdlcnR5
�“q�͕������������ݕ��
我试着在网上解码,结果显示出了预期的效果(user@gmail.com:qwerty)

例如,在这里它可以很好地工作:

我遗漏了什么??

解决了: 好的,事实上我找到了…我必须从字符串中删除“Basic”,这样解码器就不会混淆了

因此,解决方案就是:

new Buffer(req.headers['authorization'].replace("Basic ",""),"base64").toString()
通过这种方式工作。

解决: 好的,事实上我找到了…我必须从字符串中删除“Basic”,这样解码器就不会混淆了

因此,解决方案就是:

new Buffer(req.headers['authorization'].replace("Basic ",""),"base64").toString()

这样就行了。

回答你自己的问题很好。总有一天会对我有帮助。:)回答你自己的问题很好。总有一天会对我有帮助。:)