javascript转义字符串没有转义为c#regex.Unescape()

时间:2012-04-23 06:08:00

标签: javascript c# .net escaping

我正在从JavaScript向c#controller发送一个转义字符串,现在我希望它在c#中进行unescape。

我在regex.Unescape()中使用c#但它不起作用。那么,我将如何在c#中取消它?

2 个答案:

答案 0 :(得分:0)

使用Uri.UnescapeUnescapeDataString,请参阅this page

答案 1 :(得分:0)

如果您需要Unicode支持且无法使用unescape中实施的System.Web功能,则可以使用以下替换语句:

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);