我找一些功能,将解码HTML实体的一个良好的数额。解码所有HTML实体
原因是我正在处理一些代码,将HTML内容变成纯文本,我的问题是很多实体做而不是使用HttpUtility.HtmlDecode
得到转换。
我关心的实体的一些例子是& nbsp;,& amp ;, & copy ;.
这是.NET 3.5。
我找一些功能,将解码HTML实体的一个良好的数额。解码所有HTML实体
原因是我正在处理一些代码,将HTML内容变成纯文本,我的问题是很多实体做而不是使用HttpUtility.HtmlDecode
得到转换。
我关心的实体的一些例子是& nbsp;,& amp ;, & copy ;.
这是.NET 3.5。
那么也许你需要HttpUtility。 HtmlDecode? 它应该工作,你只需要添加的System.Web参考。 至少这是.Net框架< 4.
例如下面的代码的方式:
MessageBox.Show(HttpUtility.HtmlDecode("&©"));
工作,并输出是如预期(和号和版权符号)。 你确定这个问题是在HtmlDecode中,而不是别的?
更新:另一个能够完成这个工作的类,WebUtility(也是HtmlDecode方法)出现在新的.Net版本中。但是,它似乎存在一些问题。请参阅HttpUtility vs. WebUtility问题。
你是正确的,这是我如何使用的结果,如果我把它变成一个asp:标签它将在copywrite字符转换成©。 – Matthew
我明白了。知道:)是非常有用的。 –
都包含在.NET 4
例如使用WebUtility.HtmlDecode
,如果我在一个控制台应用程序运行:
Console.WriteLine(WebUtility.HtmlDecode(" , &, ©"));
我得到, &, c
我可能应该说这是为.net 3.5。尽管我已经给你+1了。不管怎样,谢谢你。 – Matthew
是什么WebUtility和HttpUtility的'HtmlDecode'方法之间的区别? – crush
这里有一个答案: http://stackoverflow.com/questions/17352981/webutility-htmldecode-vs-httputilty-htmldecode 总之 - WebUtility带着WinRT的,它是新的,而HttpUtility是旧的(使用的所有在这个地方,所以我希望它留下)。 此外我认为WebUtility是在System.dll中(System.Net),这使得它更容易一点的WinApps(你不必依赖的System.Web)如果我没有记错。 –
我切换到.Net 3.5并使用'Console.WriteLine(HttpUtility.HtmlDecode(“ ,&, ©”));'它对我来说工作得很好。我无法弄清楚为什么你会遇到麻烦。你有一个奇怪的字符串编码或什么? –