1

我正在从 JavaScript 向 c# 控制器发送一个转义字符串,现在我希望它在c#.

我用过regex.Unescape()c#它不起作用。那么,我将如何避免它c#呢?

4

2 回答 2

0

使用Uri.Unescapeor UnescapeDataString,请参阅此页面

于 2012-04-23T06:14:34.587 回答
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);
于 2015-05-08T07:06:51.537 回答