我想在我的cookie中使用未转义的字符(jquery)

Joe*_*ris 6 javascript jquery jquery-ui

我想将href值存储在cookie中,麻烦的是当我执行cookie时正在逃避正斜杠,所以例如

代码是

$.cookie ("mycookie", $link.attr("href"), { path: '/', expires: 7 });
Run Code Online (Sandbox Code Playgroud)

HTML是

<li><a id="czechrepublic" href="/cz/cz.html">?eská republika</a></li>

当我存储href时,它被存储为

%2Fcz%2Fcz.html
Run Code Online (Sandbox Code Playgroud)

但我需要它存储为/cz/cz.html有没有一种方法在Jquery中取消字符,我已经在标准的javascript cookie教程中看到了这一点,但我不知道如何使用Jquery cookie插件

谢谢

jua*_*tas 6

$.cookie.raw = true
$.cookie('mycookie','/cz/cz.html')
Run Code Online (Sandbox Code Playgroud)

这里开始


Ces*_*sar 5

使用 decodeURIComponent(vartobedecoded.replace(/\+/g, " "));


bob*_*nce 4

当您通过 jQuery cookie 插件检索 cookie 时$.cookie('mycookie'),它​​将自动使用正确的函数进行转义,即decodeURIComponent.

如果您需要在服务器端对字符串进行解码,则无论您使用哪种语言,都必须使用 URL 解码功能。

如果你需要一个未编码的 cookie,因为服务器端无法更改为使用编码的 cookie,你应该忘记 jQuery 插件,只需自己设置 cookie:

document.cookie= 'mycookie='+$link.attr("href");
Run Code Online (Sandbox Code Playgroud)

对于值来说/cz/cz.html,这是可以的,但是还有很多其他字符您无法存储在 cookie 中,这就是 jQuery 转义它们的原因。