如何在 HTML 中对特殊字符进行编码,但排除标记



我正在尝试将HTML页面转换为包含正确命名实体的页面,将引号,双引号转换为实体。我尝试了以下代码,该代码有效但对HTML标签进行了编码,我想将其保留。任何想法如何做到这一点?

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;
}

正如上面的MatthewG所指出的,答案已经发布到html实体编码文本,而不是html标签 - 解决方案是使用HTMLAgilityPack并将html文本或节点传递给方法实体化 - 这仅对页面内容进行编码,而不是标签。

using HtmlAgilityPack;
html = HtmlEntity.Entitize(html);

最新更新