2012-04-23 48 views
1

我發送一個從JavaScript到c#控制器的轉義字符串,現在我想它在c# unescape。javascript轉義字符串沒有得到未轉義的c#regex.Unescape()

我用regex.Unescape()c#但它不工作。那麼,我將如何在c#中使用它?

+0

燦你在C#中和JavaScript中轉義相同的字符串?每個字符串的結果是什麼?你能發表這個嗎? – Tobi 2012-04-23 06:13:05

+0

你如何用JavaScript轉義字符串? – 2012-04-23 06:29:38

+0

escape(string); – gaurav 2012-04-23 13:19:57

回答

0

使用Uri.UnescapeUnescapeDataString,看到this page

+0

感謝您的回答,但它不工作顯示異常無效的URI,我發送「<鏈接... <鏈接.. <腳本..」這種字符串從javascript – gaurav 2012-04-23 06:25:55

+0

也許你應該嘗試使用'URIEncodeComponent'客戶端,而不是'逃生' – KooiInc 2012-04-23 06:30:21

+1

@KooiInc'encodeURIComponent' – 2012-04-23 06:32:27

0

如果你需要Unicode支持,您不能使用System.Web實施unescape功能,您可以使用下面的REPLACE語句來代替:

string str = "%u0442%u043E%u0432%u0430%20%u0435%20text%20%14%u20AC"; 

//replace Unicode characters 
str = Regex.Replace(str, @"%U([0-9A-F]{4})", match => ((char)int.Parse(match.Groups[1].Value, NumberStyles.HexNumber)).ToString(),RegexOptions.IgnoreCase); 
//now replace ASCII character 
str = Regex.Replace(str, @"%([0-9A-F]{2})", match => ((char)int.Parse(match.Groups[1].Value, NumberStyles.HexNumber)).ToString(),RegexOptions.IgnoreCase); 

Console.WriteLine(str);