将特殊字符转换为HTML编码字符

6
我希望将所有特殊字符转换为Html编码字符。我发现很多帖子都与使用HttpUtility.HtmlEncode();有关,但它只能转换一些特殊字符,如"&", "<", ">"
是否有任何方法可以使用C#或javascript将所有特殊字符(如"š","Ø","þ","›","Ù")转换为Html实体?
3个回答

6

可以使用Microsoft AntiXss Library来实现这一功能;

string p = Microsoft.Security.Application.Encoder.HtmlEncode("aaa <b>sdf</b> š,Ø,þ,›,Ù", true);
Response.Write(p);

aaa &lt;b&gt;sdf&lt;/b&gt; &scaron;,&Oslash;,&thorn;,&rsaquo;,&Ugrave;

转换不需要库,对吧?我们真的需要一个库吗? - Suresh Atta
如果您想在服务器端进行转义,这是一种方法。 - Alex K.
HtmlTextWriter 还有 WriteEncodedText 方法,请参见下面的帖子。 - Shahyad Sharghi

5

您也可以不使用AntiXSS,按照以下方式进行操作

public static string HtmlEncode (string text)
{
    string result;
    using (StringWriter sw = new StringWriter())
    {
        var x = new HtmlTextWriter(sw);
        x.WriteEncodedText(text);
        result = sw.ToString();
    }
    return result;

}

1
请注意,您需要引用 System.Web。 - SILENT

4
是的,使用JavaScript 转义它们
document.write(escape("3423424242<><><$$"));

我不明白这个。为什么你要解决 Ishan 已经解决的问题?还是我漏掉了什么?我的意思是,escape 会用相应的 % 值替换字符,比如 "š"、"Ø"、"þ"、"›"、"Ù" 吗? - Yogee
请检查我分享的演示链接。它还编码了所有特殊字符。 - Suresh Atta
感谢澄清。所以我点了个赞 :) - Yogee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接