4

I need to set a cookie with javascript which I'm doing this with the following command:

document.cookie = name+"="+value;

My problem is that value is a string, which can contain any unicode-character.

Is there a function which automatically replaces special characters (like ;) - and if not, which characters are forbidden?

Something like the "encodeURIComponent()"-Function for Get-Parameters would be perfect

4

2 回答 2

4

你应该使用window.escape.

escape() 方法将特殊字符(任何不是常规文本或数字的字符)转换为十六进制字符,这对于设置 cookie 的值尤其必要。在 GET 请求或 AJAX GET/POST 请求的 URL 中传递名称=值对时也很有用。

它也有window.unescape对应物。

更新。在转义之前使用base64编码/解码 可能是有意义的,以免因window.encode.

于 2012-06-27T17:23:38.050 回答
1

为什么不使用强大的 cookie 库来处理 cookie?

$.cookie('key', value, { expires: 365 });

浏览器将 cookie 限制为 4 kB。如果您需要在客户端存储超过 4 kB 的空间,则应使用本地存储

于 2012-06-27T17:22:54.433 回答