如何在C#中转义html使用的文本?我想要做
sample="blah"
并有
blah
显示为纯文本而不是blah只与html的标签部分:(.使用C#而不是ASP
using System.Web; var encoded = HttpUtility.HtmlEncode(unencoded);
此外,如果您不想使用System.Web
程序集,则可以使用此选项:
var encoded = System.Security.SecurityElement.Escape(unencoded)
每这篇文章,之间的区别System.Security.SecurityElement.Escape()
,并System.Web.HttpUtility.HtmlEncode()
为前者还对单引号(')
字符.
如果您使用的是.NET 4或更高版本而您不想引用System.Web
,则可以使用WebUtility.HtmlEncode
fromSystem
var encoded = WebUtility.HtmlEncode(unencoded);
这具有HttpUtility.HtmlEncode
与之相同的效果,并且应该优先于System.Security.SecurityElement.Escape
.
没人提到,在ASP.NET 4.0中有新的语法来做到这一点.代替
<%= HttpUtility.HtmlEncode(unencoded) %>
你可以干脆做
<%: unencoded %>
在这里阅读更多内容:http: //weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and- ASP净MVC-2.aspx
.NET 4.0及更高版本:
using System.Web.Security.AntiXss; //... var encoded = AntiXssEncoder.HtmlEncode("input", useNamedEntities: true);
您可以使用实际的html标记
并按原样输出字符串,以显示xmp标记之间的所有标记.
或者您也可以在服务器上使用Server.UrlEncode
或HttpUtility.HtmlEncode
.