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

时间:2013-04-05 02:56:43

标签: 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').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�͕������������ݕ��

我尝试在线解码,并按预期显示(user@gmail.com:qwerty)

例如,这里工作正常:http://www.base64decode.org

我错过了什么?

1 个答案:

答案 0 :(得分:1)

解决: 好吧,实际上我发现它...我必须从字符串中删除“Basic”,这样解码器就不会混淆了..

所以解决方案只是:

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

这种方式有效。