我从html获得了一个字符串,如:
var htmlStr = " \\x26lt;span\\x26gt; \\x26lt;/span\\x26gt;";
我无法将其解码为C#字符串,如:
<span> </span>
如果我将字符串修改为
var htmlStr = " \x26lt;span\x26gt; \x26lt;/span\x26gt;";
效果很好。但是我怎么能通过替换字符串或其他方式来实现呢?
BTW,我使用Encoding.UTF8。
答案 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