首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用C#取消转义JavaScript的escape()

使用C#取消转义JavaScript的escape()
EN

Stack Overflow用户
提问于 2010-09-23 20:06:23
回答 7查看 48.4K关注 0票数 47

C#中有没有像JavaScript一样处理转义/取消转义的函数?

我有一个这样的JSON字符串:

{"Feeds":[{"Url":"www.test.com","FeedType":"Twitter"},{"Url":"www.test2.com","FeedType":"Youtube"}]}

它在escape()之后看起来像这样

%7B%22Feeds%22%3A%5B%7B%22Url%22%3A%22www.test.com%22%2C%22FeedType%22%3A%22Twitter%22%7D%2C%7B%22Url%22%3A%22www.test2.com%22%2C%22FeedType%22%3A%22Youtube%22%7D%5D%7D

在我的C#代码中,我想取消转义这个字符串,以便它看起来与escape()之前完全一样

这个是可能的吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-09-23 20:08:51

HttpUtility.UrlDecode应该可以做到这一点。

票数 73
EN

Stack Overflow用户

发布于 2010-09-23 20:12:50

escape()等同于

代码语言:javascript
运行
复制
HttpUtility.UrlDecode(str, System.Text.Encoding.Default);

默认情况下,UrlDecode使用UTF8,而escape()不使用。

票数 21
EN

Stack Overflow用户

发布于 2013-04-12 04:41:53

这是我发现的处理这些问题的最好方法:

在C#中编码:

代码语言:javascript
运行
复制
System.Uri.EscapeDataString("<string>");

在JavaScript中解码:

代码语言:javascript
运行
复制
decodeURI("<string>");

在JavaScript中编码:

代码语言:javascript
运行
复制
encodeURI("<string>");

在C#中解码:

代码语言:javascript
运行
复制
System.Uri.UnescapeDataString("<string>");

更新2016年1月27日:刚刚发现了一种似乎更兼容的方法,它还对URI协议进行了编码(使用javascript的http://):

在JavaScript中编码:

代码语言:javascript
运行
复制
encodeURIComponent("<string>");

在JavaScript中解码:

代码语言:javascript
运行
复制
decodeURIComponent("<string>");
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3778165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档