How can I decode HTML characters in C#?
我有用HTML字符实体编码的电子邮件地址。.NET中有什么可以将它们转换为纯字符串的吗?
你可以用
如果您使用的是.NET 4.0+,那么也可以使用
在.NET 4.0上:
1 | System.Net.WebUtility.HtmlDecode() |
不需要包含C项目的程序集
正如@cq所说,您需要使用httputility.htmldecode,但默认情况下,它在非ASP.NET项目中不可用。
对于非ASP.NET应用程序,需要添加对
现在添加了引用,您应该能够使用完全限定名
如果没有服务器上下文(即脱机运行),则可以使用httputility.htmldecode。
要解码HTML,请看下面的代码
1 2 3 | string s ="Svendborg Værft A/S"; string a = HttpUtility.HtmlDecode(s); Response.Write(a); |
号
输出就像
1 | Svendborg V?rft A/S |
使用
同样值得一提的是,如果你像我一样使用htmlagilitypack,你应该使用
对于.NET 4.0
在
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | // Html encode/decode public static string HtmDecode(this string htmlEncodedString) { if(htmlEncodedString.Length > 0) { return System.Net.WebUtility.HtmlDecode(htmlEncodedString); } else { return htmlEncodedString; } } public static string HtmEncode(this string htmlDecodedString) { if(htmlDecodedString.Length > 0) { return System.Net.WebUtility.HtmlEncode(htmlDecodedString); } else { return htmlDecodedString; } } |
将一个方法写入某个实用程序类,该实用程序类接受字符串作为参数,并返回解码后的HTML字符串。
把
1 2 3 4 5 6 7 8 9 10 11 | public static string HtmlEncode(string text) { if(text.length > 0){ return HttpUtility.HtmlDecode(text); }else{ return text; } } |
。