解码所有HTML实体

时间:2011-12-01 21:58:59

标签: c# asp.net html-entities

我正在寻找一些可以解码大量HTML实体的函数。

原因是我正在研究一些代码来获取HTML内容并将其转换为纯文本,我遇到的问题是很多实体使用HttpUtility.HtmlDecode进行 转换。

我关注的实体的一些例子是& nbsp;,& amp; amp; amp; copy;。

这适用于 .net 3.5

2 个答案:

答案 0 :(得分:28)

那么也许你需要 HttpUtility .HtmlDecode?。 它应该工作,你只需要添加对System.Web的引用。 至少这是.Net Framework中的方式< 4。

例如以下代码:

MessageBox.Show(HttpUtility.HtmlDecode("&©"));

工作,输出符合预期(&符号和版权符号)。 你确定问题出在HtmlDecode中而不是其他内容吗?

UPDATE:另一个能够完成这项工作的类,WebUtility(再次是HtmlDecode方法)来自更新版本的.Net。但是,它似乎存在一些问题。请参阅HttpUtility vs. WebUtility问题。

答案 1 :(得分:22)

使用.Net 4中包含的WebUtility.HtmlDecode

例如,如果我在控制台应用程序中运行:

  Console.WriteLine(WebUtility.HtmlDecode(" , &, ©"));

我得到, &, c