将ASCII字符替换为等效字符

Replace ASCII characters with their equivalent

本文关键字:字符 替换 ASCII      更新时间:2023-09-26

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

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

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

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

C#

用途:

String decoded = HttpUtility.UrlDecode(EncodedString);

HttpUtility.UrlDecode()是您可以在.NET Framwework中使用的大多数其他替代方案所使用的底层函数(请参阅下文)

如果需要,您可能需要指定一个编码

或者:

String decoded = Uri.UnescapeDataString(s);

有关一些注意事项,请参阅Uri.UnescapeDataString()的文档

JavaScript

var decoded = decodeURIComponent(s);

在按照其他问题中的建议使用unescape之前,请阅读decodeURIComponent与unescape,unescape有什么问题。您可能还想阅读decodeURIComponent和decodeURI之间的区别是什么

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

var str = unescape('Adam%20-%20%28SET%29');

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

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