我使用JavaScript在cookie中设置一个值,并在后面的代码中获取cookie的内容。
但问题是如果我使用一些特殊字符或空格字符存储字符串,当我检索cookie的内容时,特殊符号将转换为ASCII等效字符。
例如,如果我想将Adam - (SET)
存储在Cookie中,则会将其转换为Adam%20-%20%28SET%29
并进行存储,当我检索它时,我会得到相同的Adam%20-%20%28SET%29
。但我想在后面的代码中得到Adam - (SET)
。
我是怎么做到的。请帮忙。
答案 0 :(得分:1)
C#
使用:
String decoded = HttpUtility.UrlDecode(EncodedString);
HttpUtility.UrlDecode()是您可以在.NET Framwework中使用的大多数其他替代方法所使用的基础函数(见下文)。
如有必要,您可能需要指定编码。
或者:
String decoded = Uri.UnescapeDataString(s);
有关注意事项,请参阅Uri.UnescapeDataString()的文档。
JavaScript
var decoded = decodeURIComponent(s);
在按照其他问题的建议继续使用unescape
之前,请先阅读decodeURIComponent vs unescape, what is wrong with unescape?。您可能还想阅读What is the difference between decodeURIComponent and decodeURI?。
答案 1 :(得分:0)
您可以使用JS中的unescape
函数来执行此操作。
var str = unescape('Adam%20-%20%28SET%29');
答案 2 :(得分:0)
您正在寻找HttpUtility.UrlDecode()
(我认为在System.Web命名空间中)
答案 3 :(得分:0)
在javascript中你可以使用内置的decodeURIComponent,但是我怀疑在将值发送到服务器时会发生字符串编码,所以C#的答案就是你想要的。