Кодировка HTML в библиотеке классов.NET

У меня есть служебный класс для отправки писем. Письма генерируются как HTML.

У меня проблемы с кодированием специальных символов, которые отображаются неправильно.

Тем не менее, я не могу понять, как использовать HtmlEncode как у меня нет тока HttpContext, Есть ли .Net класс, который будет переводить специальные символы в HTML-коды без запуска под Asp.Net?

Надеюсь, это имеет смысл, я немного расстроен тем, как все это работает. Спасибо!

5 ответов

Решение

Вы можете импортировать пространство имен System.Web и использовать класс HttpUtility. Хотя это веб-сборка, я не думаю, что для ее работы необходимо работать в веб-среде.

Я верю System.Net.WebUtility.HtmlEncode обеспечит эту функциональность. Ссылка MSDN для WebUtility.HTMLEncode

Вы можете использовать HttpUtility класс от System.Web.

Вы должны действительно изучить использование AntiXSS библиотека WPL.

  1. Вам не нужен System.Web!

  2. Он использует принцип включения в белый список (кодировка System.Web использует черный список). Только символам, которые, как известно, безопасны, будут доверять, и все другие будут должным образом закодированы

Как насчет HttpUtility.HtmlEncode?

Другие вопросы по тегам