将 C# 字符串转义为 HTML

发布于 2024-12-23 14:14:03 字数 292 浏览 2 评论 0原文

我有一个带有特殊字符的字符串,如下所示:

äöüß&

现在我想将其放入 HTML 文档中,并且需要转义这些字符。有没有一种优雅的方式来做到这一点?

我可以这样做:

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

但我不想对所有可能的特殊字符都这样做。

I have a string with special characters like this:

äöüß&

Now I want to put that in an HTML document and need to escape these characters. Is there an elegant way doing this?

I could do this:

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

But I don't want to do that for all possible special characters.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

冷情 2024-12-30 14:14:03

让框架为您完成工作。

您可以尝试 HtmlEncode

string encodedHtml = Server.HtmlEncode(html);

Let the Framework do the work for you.

You could try HtmlEncode:

string encodedHtml = Server.HtmlEncode(html);
泼猴你往哪里跑 2024-12-30 14:14:03

还有这个,用于 XML,但它应该可以与 HTML 一起正常工作:

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

There is also this, intended for XML, but it should work just fine with HTML:

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

那请放手 2024-12-30 14:14:03

我建议养成使用 Microsoft 的 AntiXSS 库 的习惯,并调用

AntiXSS.HtmlEncode(yourstring);

如果您需要将其包含在正文中,或者

AntiXSS.HtmlAttributeEncode(yourstring);

如果它位于 HTML 属性内。

I recommend getting into the habit of using Microsoft's AntiXSS Library, and calling

AntiXSS.HtmlEncode(yourstring);

if you need to include it in the body, or

AntiXSS.HtmlAttributeEncode(yourstring);

if it is going inside an HTML attribute.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文