Более продвинутое кодирование.NET HTML
Я ищу кодировщик HTML, который немного более тщательный, чем метод.NET HtmlEncode. Этот метод будет обрабатывать <>, но не длинные тире, что вызывает у меня проблемы. Существует ли библиотека.NET, которая кодирует все специальные символы в HTML?
Где это:
ШАРЛОТТА, Северная Каролина (AP) - Республиканский национальный комитет проводит свои зимние собрания в городе Северная Каролина, где четыре месяца назад демократы переизбрали Барака Обаму на пост президента.
Будет переводить в:
ШАРЛОТТА, NC (AP) & ndash; Республиканский национальный комитет проводит свои зимние собрания в городе Северная Каролина, где четыре месяца назад демократы переизбрали Барака Обаму на пост президента.
1 ответ
В итоге я использовал кодировщик HTML для бедного человека, которого нашел где-то в Интернете. При этом используется.htmlEncode функция.NET, а затем принимает все символы "High ASCII" и преобразует их в эквивалент HTML & # 000;. Небрежно, но эффективно.
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();
}