Unescape JavaScript的escape()使用C#

C#中的任何函数是否像JavaScript一样处理escape / unescape?

我有这样的JSONstring:

{"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()这个string,使它看起来和escape()之前的完全一样,

这可能吗?

7 Solutions collect form web for “Unescape JavaScript的escape()使用C#”

HttpUtility.UrlDecode应该做的伎俩。

escape()相当于

 HttpUtility.UrlDecode(str, System.Text.Encoding.Default); 

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

这是我发现与这些工作最好的方式:

用C#编码:

 System.Uri.EscapeDataString("<string>"); 

JavaScript解码:

 decodeURI("<string>"); 

在JavaScript中编码:

 encodeURI("<string>"); 

在C#中解码:

 System.Uri.UnescapeDataString("<string>"); 

更新27-Jan-2016 :刚刚发现似乎是一个更兼容的方式来做到这一点,它也使用javascript编码URI协议(http://):

在JavaScript中编码:

 encodeURIComponent("<string>"); 

JavaScript解码:

 decodeURIComponent("<string>"); 

唉,为什么我们有时候会这么想呢? 当一个API函数很愚蠢的时候,向图书馆开发者发送一个karma cuss,然后解决它…

 HttpUtility.UrlEncode(editext, System.Text.Encoding.Default).Replace("+","%20"); 
  internal static string UnJavascriptEscape(string s) { // undo the effects of JavaScript's escape function return HttpUtility.UrlDecode(s.Replace("+", "%2b"), Encoding.Default); } 

为了避免使用HttpUtility而不必引用System.Web,请尝试以下操作:

 Str = Str.Replace("+", " "); Str = Regex.Replace(Str, "%([A-Fa-f\\d]{2})", a => "" + Convert.ToChar(Convert.ToInt32(a.Groups[1].Value, 16))); 

另外,当我尝试HttpUtility.UrlDecode时,它不适用于特殊字符áéíóúñ。

我花了8个小时试图获得

 HttpUtility.UrlDecode 

工作,放弃和使用

 HttpUtility.HtmlDecode 

哪些工作立即。

  • 温莎城堡有什么缺点?
  • ASP.net尝试将文件上载到Windows Server 2008 R2 Web服务器时出现“访问path被拒绝”错误
  • ASP.NET MVC2 / 3中“runAllManagedModulesForAllRequests”的正确用法是什么?
  • SignalR 2.0错误:无法加载文件或程序集Microsoft.Owin.Security
  • 我是否需要一个Global.asax.cs文件,如果我正在使用一个OWIN Startup.cs类并移动所有的configuration?
  • mvc:favicon.ico也查找控制器吗?
  • ASP.NET身份默认密码哈希,它是如何工作的,它是安全的?
  • 无法使用DotNetOpenAuth ServiceProvider使用PLAINTEXT签名
  • 如何在ASP.Net应用程序中使用HTTPS
  • 将字典绑定到中继器
  • URL编码的表单数据无效