使用Javascript设置Cookie并清理值

时间:2012-06-27 17:19:35

标签: javascript cookies special-characters

我需要使用javascript设置一个cookie,我正在使用以下命令执行此操作:

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

我的问题是value是一个字符串,可以包含任何unicode字符。

是否有自动替换特殊字符的函数(如;) - 如果没有,是否禁止使用哪些字符?

像“encodeURIComponent()”这样的东西 - Get-Parameters的函数将是完美的

2 个答案:

答案 0 :(得分:2)

为什么不使用a robust cookie library来处理Cookie?

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

浏览器将cookie限制为4 kB。如果您需要在客户端上存储超过4 kB,则应使用local storage

答案 1 :(得分:2)

您应该使用window.escape

  

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

它也有window.unescape对应物。

<强> UPD。 在转义之前使用base64编码/解码可能有一定意义,以免{un}来自window.encode的unicode字符消耗那么多。