2

在 Django 中创建多值 cookie 时,如何指定每个键/值对之间的分隔符,以便 cookie 接收分隔符的 ASCII 字符表示而不是八进制表示?这是我目前正在做的事情:

uid = 1
dev = 'computer'
cookie_value = 'uid:%s,dev:%s' % (uid, dev)
response.set_cookie(key="profile", value=cookie_value)

如果我通过 Python 调试器运行它,cookie_value 包含:

'uid:1,dev:computer'

但是,如果我在浏览器中检查 cookie,我会看到:

'uid:1\054dev:computer'

如何让 Django 用逗号替换 '\054'?

谢谢。

4

1 回答 1

2

你的答案就在这里

Cookie 编码

为了修复 Internet Explorer、Safari 和可能的其他浏览器中的 cookie 错误,我们更改了 cookie 值的编码,以便将字符逗号和分号视为非安全字符,因此编码为 \054 和 \073分别。这可能会导致向后不兼容,特别是如果您在 cookie 中存储逗号或分号,并且有 javascript 代码可以在客户端解析和操作 cookie 值。

于 2013-06-28T00:55:26.897 回答