我正在寻找一个函数,可以解码大量的HTML实体。
原因是我正在编写一些代码,将HTML内容转换为纯文本。问题在于,许多实体不能使用HttpUtility.HtmlDecode
进行转换。
我关心的一些实体示例包括 、& 和 ©。
这是针对 .net 3.5 的。
我正在寻找一个函数,可以解码大量的HTML实体。
原因是我正在编写一些代码,将HTML内容转换为纯文本。问题在于,许多实体不能使用HttpUtility.HtmlDecode
进行转换。
我关心的一些实体示例包括 、& 和 ©。
这是针对 .net 3.5 的。
那么也许您需要使用 HttpUtility.HtmlDecode 方法。它应该可以工作,您只需要添加对 System.Web 的引用。 至少在 .Net Framework < 4 中是这样的。
例如以下代码:
MessageBox.Show(HttpUtility.HtmlDecode("&©"));
代码正常工作,输出结果如预期(包含&符号和版权符号)。您确定问题出在HtmlDecode而不是其他地方吗?
更新:另一个可以完成这项工作的类,WebUtility(同样是HtmlDecode方法),出现在较新版本的.Net中。然而,似乎存在一些问题。请参阅HttpUtility vs. WebUtility 问题。
encodeURI()
,请使用HttpUtility.UrlDecode()
。 - chris c使用 .Net 4 中包含的 WebUtility.HtmlDecode
方法。
例如,在控制台应用程序中运行以下代码:
Console.WriteLine(WebUtility.HtmlDecode(" , &, ©"));
我得到的是, &, c
HtmlDecode
方法有什么区别? - crush
Console.WriteLine(HttpUtility.HtmlDecode(" , &, ©"));
,对我来说它很好用。我想不出你为什么会遇到麻烦。你的字符串编码有问题吗? - John Gibb