1

我真的希望这能正常工作,但是......

我在标题中得到一个 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

我错过了什么??

4

1 回答 1

1

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

所以解决方案就是:

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

这样就可以了。

于 2013-04-05T03:13:30.600 回答