2

我正在使用 JavaScript 在 cookie 中设置一个值,并在后面的代码中获取 cookie 的内容。

但问题是,如果我用一些特殊字符或空白字符存储字符串,当我检索 cookie 的内容时,特殊符号将被转换为 ASCII 等价物。

例如,如果我想存储Adam - (SET)在 cookie 中,它会被转换为Adam%20-%20%28SET%29并被存储,当我检索它时,我会得到相同的 cookie Adam%20-%20%28SET%29。但我想在后面的代码中得到这个Adam - (SET)

我怎么得到这个。请帮忙。

4

4 回答 4

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,unescape 有什么问题?. 您可能还想阅读decodeURIComponent 和 decodeURI 有什么区别?.

于 2012-07-12T08:09:56.850 回答
0

您可以使用unescapeJS 中的函数来执行此操作。

var str = unescape('Adam%20-%20%28SET%29');
于 2012-07-12T08:09:25.673 回答
0

您正在寻找HttpUtility.UrlDecode()(我认为在 System.Web 命名空间中)

于 2012-07-12T08:11:41.017 回答
0

在 javasrcipt 中,您可以使用内置的decodeURIComponent,但我怀疑在将值发送到服务器时会发生字符串编码,因此 C# 答案就是您想要的。

于 2012-07-12T08:30:00.350 回答