我正在寻找一种比.NET的HtmlEncode方法更彻底的HTML编码器。该方法将处理<>但不长的破折号,这会给我带来麻烦。是否有一个.NET库将所有特殊字符编码为HTML?
这是:
新泽西州夏洛特(美联社) - 共和党全国委员会正在北卡罗来纳州召开冬季会议,四个月前民主党重新提名巴拉克·奥巴马为总统。
会转化为:
CHARLOTTE,N.C。(美联社)& mdash;共和党全国委员会是 在北卡罗来纳州举行冬季会议的民主党人 四个月前,巴拉克·奥巴马再次提名总统。
答案 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();
}