将C#String转义为HTML

时间:2012-01-02 19:19:37

标签: c# html escaping

我有一个包含这样特殊字符的字符串:

  

äöüß&安培;

现在我想将它放在HTML文档中,并且需要转义这些字符。这样做有一种优雅的方式吗?

我可以这样做:

string html;
html = html.Replace("ü", "uu¨");
html = html.Replace("ß", "ß");
....

但我不想为所有可能的特殊角色做到这一点。

3 个答案:

答案 0 :(得分:13)

为什么不让框架为您完成工作?

您可以尝试HtmlEncode

string encodedHtml = Server.HtmlEncode(html);

答案 1 :(得分:9)

还有这个,用于XML,但它应该可以正常使用HTML:

System.Security.SecurityElement.Escape( string s );

答案 2 :(得分:2)

我建议养成使用Microsoft's AntiXSS Library和调用

的习惯
AntiXSS.HtmlEncode(yourstring);

如果您需要将其包含在体内,或

AntiXSS.HtmlAttributeEncode(yourstring);

如果它进入html属性。