解码HTML字符串,其中&符编码为\\ x26

时间:2015-12-30 08:12:13

标签: c# html

我从html获得了一个字符串,如:

var htmlStr = " \\x26lt;span\\x26gt; \\x26lt;/span\\x26gt;";

我无法将其解码为C#字符串,如:

 <span> </span>

如果我将字符串修改为

var htmlStr = " \x26lt;span\x26gt; \x26lt;/span\x26gt;";

效果很好。但是我怎么能通过替换字符串或其他方式来实现呢?

BTW,我使用Encoding.UTF8。

2 个答案:

答案 0 :(得分:4)

你这样做

var htmlStr = "\\x26lt;span\\x26gt; \\x26lt;/span\\x26gt;";
// Take out the extra stars
var result = Regex.Replace(htmlStr, @"\*\*([^*]*)\*\*", "$1");   
// Unescape \x values
result = Regex.Replace(htmlStr,
                @"\\x([a-fA-F0-9]{2})", 
                match => char.ConvertFromUtf32(
                    Int32.Parse(match.Groups[1].Value, 
                    System.Globalization.NumberStyles.HexNumber)));
// Decode html entities
htmlStr = WebUtility.HtmlDecode(result);

输出

<span> </span>

答案 1 :(得分:1)

这里已经回答: How can I decode HTML characters in C#?

简而言之,您可以使用 HttpUtility.HtmlDecode WebUtility.HtmlDecode