Node.js cookie分析器返回编码的字符
我正在使用cookie分析器给用户一个签名的cookie,但我手动解码他们有问题。 服务器用隐藏的hex代码返回cookies(我猜?)。 例:
app.use(cookieParser('bar')); ... res.cookie('nickname', 'foo', { signed: true });
然后我有奇怪的%3A
字符nickname=s%3Afoo.FHkzIYqqvAuLEKKzpcNGhMjZQ0G88QpHNtxycPd0GFE
,我无法解码
cookieParser.signedCookie('s%3Afoo.FHkzIYqqvAuLEKKzpcNGhMjZQ0G88QpHNtxycPd0GFE', 'bar')
返回相同的string。 当我将%3A
更改为:
hex编码?)时
cookieParser.signedCookie('s:foo.FHkzIYqqvAuLEKKzpcNGhMjZQ0G88QpHNtxycPd0GFE', 'bar')
我得到了foo
– 正确的价值。 有谁知道如何自动处理? 非常感谢您的帮助。
你得到的string是urlencoded ( RFC 3986 ),这意味着你需要解码它,然后才能正常使用它。 ( 注意:维基百科将此列为“百分比编码” )
JavaScript中的decode命令是unescape,但从JavaScript 1.5开始,此命令已过时,您应该使用decodeURI或decodeURIComponent 。
使用这些命令的语法如下所示:
UNESCAPE
var foo = "Hello%20World"; // encoded string var bar = unescape("Hello%20World"); console.log(bar);