PHP中的htmlspecialcharacters相当于.NET?

PHP有一个很棒的函数叫做htmlspecialcharacters() ,你传递一个字符串,用它们安全的等价物替换所有HTML的特殊字符,它几乎是一站式消毒输入。 非常好吗?

那么在任何.NET库中都有相同的东西吗?

如果没有,任何人都可以链接到任何代码示例或库这样做吗?

试试这个。

var encodedHtml = HttpContext.Current.Server.HtmlEncode(...); 

System.Web.HttpUtility.HtmlEncode(串)

不知道是否有确切的替换,但有一个方法HtmlUtility.HtmlEncode用它们的HTML等价替换特殊字符。 近亲是用于呈现URL的HtmlUtility.UrlEncode 。 您还可以使用RegularExpressionValidatorRangeValidatorSystem.Text.RegularExpression.Regex等validation器控件来确保获得所需内容。

实际上,您可能想尝试这种方法:

 HttpUtility.HtmlAttributeEncode() 

为什么? 引用MSDN文档中的HtmlAttributeEncode页面 :

HtmlAttributeEncode方法仅将引号(“),&符号(&)和左尖括号(<)转换为等效的字符实体。它比HtmlEncode方法快得多。

除了给定的答案之外:当使用Razor视图引擎 (这是ASP.NET中的默认视图引擎)时,使用“@”字符显示值将自动编码显示的值。 这意味着您不必使用编码。

另一方面,当您希望文本被编码时,您必须明确指定(通过使用@ Html.Raw )。 在我看来,从安全的角度来看,这是一件好事。