Как я могу декодировать HTML-символы в С#?

У меня есть адреса электронной почты, закодированные с помощью символов символов HTML. Есть ли что-нибудь в .NET, которое может конвертировать их в простые строки?

Ответ 1

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

Если вы используете .NET 4.0+, вы также можете использовать WebUtility.HtmlDecode, который не требует дополнительной ссылки на сборку, поскольку она доступна в пространство имен System.Net.

Ответ 2

В .Net 4.0:

System.Net.WebUtility.HtmlDecode()

Не нужно включать сборку для проекта С#

Ответ 3

Как говорит @CQ, вам нужно использовать HttpUtility.HtmlDecode, но по умолчанию он не доступен в проекте, отличном от ASP.NET.

Для приложения, отличного от ASP.NET, вам нужно добавить ссылку на System.Web.dll. Щелкните правой кнопкой мыши свой проект в обозревателе решений, выберите "Добавить ссылку", затем просмотрите список для System.Web.dll.

Теперь, когда ссылка добавлена, вы должны иметь доступ к этому методу с использованием полного имени System.Web.HttpUtility.HtmlDecode или вставить оператор using для System.Web, чтобы упростить задачу.

Ответ 4

Если контекст сервера отсутствует (т.е. работает автономно), вы можете использовать HttpUtility. HtmlDecode.

Ответ 5

Используйте Server.HtmlDecode для декодирования объектов HTML. Если вы хотите избежать HTML, то есть отобразить символ < и > для пользователя, используйте Server.HtmlEncode.

Ответ 6

Также стоит отметить, что если вы используете HtmlAgilityPack, как я, вы должны использовать HtmlAgilityPack.HtmlEntity.DeEntitize(). Он принимает string и возвращает a string.

Ответ 7

Чтобы декодировать HTML, посмотрите ниже код

string s = "Svendborg V&#230;rft A/S";
string a = HttpUtility.HtmlDecode(s).ToString();
Response.Write(a);

Вывод похож на

 Svendborg Værft A/S