将ASCII字符替换为等效字符
Replace ASCII characters with their equivalent
我使用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#答案就是您想要的。
相关文章:
- 无效字符替换时出错
- 在JavaScript中,如何用一个字符替换字符串中的所有字母
- 不能将 UTF-8 字符替换为正则表达式
- .keyup() 上的非拉丁字符替换在快速键入时不起作用
- 将字符串中的重复字符替换为不断增长的数字 [Javascript]
- 为什么不用特殊字符替换选择文本,以及如何删除此特殊字符
- 将ASCII字符替换为等效字符
- Javascript:用其他字符替换反斜杠和双引号
- Angularjs:显示字符串中的最后四个字符,并将其余字符替换为“X”
- 用字符替换将字符串之类的数组替换为数组
- 用连字符替换字符串中的空格
- 特殊字符替换为空格
- 将所有字符替换为 #,最后 4 个字符除外
- 将文本上的特殊字符替换为 jquery
- 将字符替换为标记(例如 *hi* 到
hi
) - JS中的多个字符替换 - 如何在同一函数中停止对先前结果的替换
- 删除时将字符替换为另一个字符
- 将所有特定字符替换为计数器升序
- Javascript 将 32 以下的字符替换为 x(charcode)
- Javascript:正则表达式,用于将某些字符替换为十六进制代码