如何在C#中转义HTML使用的文本?我想要做
sample="<span>blah<span>"
并有
<span>blah<span>
显示为纯文本而不是仅使用html :(。的标签部分)。
如何在C#中转义HTML使用的文本?我想要做
sample="<span>blah<span>"
并有
<span>blah<span>
显示为纯文本而不是仅使用html :(。的标签部分)。
Answers:
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()
为前者还对单引号(')
字符。
SecurityElement.Escape()
逃脱不完全是HTML的XML了。
如果您使用.NET 4级以上,你不想要的参考System.Web
,您可以使用WebUtility.HtmlEncode
从System
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-net-mvc-2.aspx