将ASCII字符替换为等效字符

时间:2012-07-12 08:06:59

标签: c# javascript cookies

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

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

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

我是怎么做到的。请帮忙。

4 个答案:

答案 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#的答案就是你想要的。