更高级的.NET HTML编码

时间:2013-01-23 17:05:50

标签: asp.net html-email mailmessage

我正在寻找一种比.NET的HtmlEncode方法更彻底的HTML编码器。该方法将处理<>但不长的破折号,这会给我带来麻烦。是否有一个.NET库将所有特殊字符编码为HTML?

这是:

  新泽西州夏洛特(美联社) - 共和党全国委员会正在北卡罗来纳州召开冬季会议,四个月前民主党重新提名巴拉克·奥巴马为总统。

会转化为:

  

CHARLOTTE,N.C。(美联社)& mdash;共和党全国委员会是   在北卡罗来纳州举行冬季会议的民主党人   四个月前,巴拉克·奥巴马再次提名总统。

1 个答案:

答案 0 :(得分:1)

我最终使用了一个穷人的HTML编码器,我在网上找到了某个地方。这使用.NET的HtmlEncode函数,然后获取所有“高位ASCII”字符并将它们转换为HTML等效的�。邋but但有效。

        public static string HtmlEncode(this string input)
    {
        char[] chars = HttpUtility.HtmlEncode(input).ToCharArray();
        StringBuilder result = new StringBuilder(input.Length + (int)(input.Length * 0.1));

        foreach (char c in chars)
        {
            int value = Convert.ToInt32(c);
            if (value > 127)
                result.AppendFormat("&#{0};", value);
            else
                result.Append(c);
        }

        return result.ToString();
    }