我有一个网络应用程序,我首先将 JSON 数据存储在 cookie 中,然后每隔 x 秒保存到数据库中。它只是打开与服务器的连接,服务器读取 cookie。它实际上并没有通过 POST 或 GET 发送任何东西。
当我保存到 cookie 时,我的数据格式很好。但是,当我在 PHP 中使用它然后 setcookie 一个新的 json_encoded 数组时,它用 + 符号替换空格,然后这些显示在我的 Web 应用程序中。我找不到任何方法来禁用 json_encode 的字符串编码,也找不到解析这些加号的 JS 方法(使用 jQuery.parseJSON;stringify 的解析也不起作用)......有没有人有任何想法:S?
来自精美手册:
请注意,cookie 的值部分会在您发送 cookie 时自动进行 urlencoded,并且当它被接收时,它会自动解码并分配给与 cookie 名称同名的变量。如果你不想要这个,
setrawcookie()如果你使用的是 PHP 5 ,你可以使用它。
但我认为您仍然希望对 cookie URL 进行编码,您只需要%20空格而不是+. 然而,urlencode:
[...] 由于历史原因,空格被编码为加号 (+)
您可以尝试使用rawurlencode自己编码:
返回一个字符串,其中所有非字母数字字符
-_.~都已替换为百分号 (%) 后跟两个十六进制数字。这是 RFC 3986 [...] 中描述的编码
然后setrawcookie设置cookie。不幸的是,没有一个decodeURI、decodeURIComponent甚至不推荐使用的unescapeJavaScript 函数会将 a 转换+回空格;所以,你可能会被困在强迫每个人都难以理解的情况下。
| 归档时间: |
|
| 查看次数: |
6548 次 |
| 最近记录: |