gpt4 book ai didi

javascript - &符号后 cookie 中的字符串损坏(javascript)

转载 作者:行者123 更新时间:2023-11-29 18:35:01 26 4
gpt4 key购买 nike

我有一个小问题,我从 cookie 中读取的字符串在 & 符号之后被破坏了。因此,例如字符串“hello & world”将只显示“hello”。它是一个字符串,是一个短代码,使用开关功能转换为更有意义的内容,然后显示在文本框中。 switch 函数工作正常,但显然如果它不是首先从 cookie 中读取完整的字符串,那么它将无法在 switch 函数中找到短代码。

我目前正在使用以下代码来读取cookie...

document.example.textfield.value = switchFunction(unescape(coalesce($_GET['example'],readCookie('_cookie'))));

如果您需要我提供更多信息,请告诉我。这是我在这里的第一篇文章,如果有任何错误或不清楚的地方,请提前致歉。

感谢您的帮助。

编辑

switchFunction 看起来像这样..

function SwitchFuntion(Code){
switch(Code){
case 'text & text, Text' : return 'new meaningful text'; break;
}
}

等....

readCookie函数是这样的...

function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}

最佳答案

我想我在 ASP.NET MVC 应用程序中遇到过类似的问题。

当我将包含 & 符号的字符串保存到 cookie 名称/值对时,它实际上被拆分为一系列名称/值对

例如尝试保存 ("value","cookiedata123&book=2&page=0") 将导致创建 3 个名称值对 "value"="cookiedata123"; “书”=“2”;和“页面”=“0”

我已经解决了这个问题,方法是在写入 cookie 之前对值进行 URL 编码,并在我读出它时立即对其进行 URL 解码。在 .net 中,调用如下所示:

// Encode
return System.Web.HttpUtility.UrlEncode(cookieData);

// Decode
return System.Web.HttpUtility.UrlDecode(encodedCookieData);

这会处理任何可能导致问题的符号、等号等。有关 cookie 中允许的字符的信息,请参阅此处的这篇文章。 Allowed characters in cookies

关于javascript - &符号后 cookie 中的字符串损坏(javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4125807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com