#1 楼
您可以使用HttpUtility.HtmlDecode
如果使用的是.NET 4.0+,则还可以使用
WebUtility.HtmlDecode
,它不需要额外的程序集引用,因为它在System.Net
命名空间中可用。#2 楼
在.Net 4.0上:System.Net.WebUtility.HtmlDecode()
无需为C#项目包括程序集
评论
It is better solution because HttpUtility doesn't decode "'" symbol.. I don't know why..
– RredCat
Sep 13 '11 at 13:44
在开发通用Windows平台时,这是必需的。
–matthewsheets
2015年6月10日19:32
这会在.Net网页中引起XSS吗?
– Senura Dissanayake
18年8月15日在11:53
#3 楼
正如@CQ所说,您需要使用HttpUtility.HtmlDecode,但默认情况下在非ASP .NET项目中不可用。对于非ASP .NET应用程序,您需要添加一个参考
System.Web.dll
。在解决方案资源管理器中右键单击您的项目,选择“添加引用”,然后浏览System.Web.dll
的列表。现在添加了引用,您应该可以使用标准格式访问方法为
System.Web.HttpUtility.HtmlDecode
命名using
或为System.Web
插入q4312079q语句使事情变得更容易。#4 楼
如果没有服务器上下文(即您离线运行),则可以使用HttpUtility.HtmlDecode。评论
同意,这就是为什么我使用HttpUtility并陷入同一陷阱= P的原因
– Quintin Robinson
08/09/23在18:07
#5 楼
还值得一提的是,如果像我一样使用HtmlAgilityPack,则应使用HtmlAgilityPack.HtmlEntity.DeEntitize()
。它需要一个string
并返回一个string
。#6 楼
要解码HTML,请看下面的代码string s = "Svendborg Værft A/S";
string a = HttpUtility.HtmlDecode(s);
Response.Write(a);
输出就像
Svendborg Værft A/S
评论
由于HtmlDecode返回一个字符串,因此'ToString()'是多余的
–贾斯汀
17年5月1日在17:51
#7 楼
使用Server.HtmlDecode
解码HTML实体。如果要转义HTML,即向用户显示<
和>
字符,请使用Server.HtmlEncode
。评论
可能没有服务器上下文(例如,在运行测试用例等时):
–Rob Cooper
08-09-23在18:04
#8 楼
将静态方法写入某些实用程序类,该实用程序类接受字符串作为参数并返回已解码的html字符串。将
using System.Web.HttpUtility
包含在您的类中public static string HtmlEncode(string text)
{
if(text.length > 0){
return HttpUtility.HtmlDecode(text);
}else{
return text;
}
}
#9 楼
对于.net 4.0使用
System.net.dll
向项目添加对using System.Net;
的引用,然后使用以下扩展名// 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;
}
}
评论
它应该在System.Web中,但事实并非如此。我已经有一年没有碰过C#了,如果对此感到沮丧,我将手动进行转换。
–瓦西尔
08/09/23在18:10
在System.Web的.NET 2.0版本中
– Mark Cidade
08/09/23在18:14
我正在使用System.Web。在我的上下文中,名称空间只有一些AspPermission类。
–瓦西尔
08/09/23在18:23
在项目属性中添加对System.Web.Dll的引用。您看到的类位于默认引用的System.dll中。
– OwenP
08-09-23在18:26
如果您尝试解码查询字符串,则需要使用HttpUtility.UrlDecode
– PeterX
13年5月23日在8:10