Более продвинутое кодирование.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();
    }
Другие вопросы по тегам