У меня есть адреса электронной почты, закодированные с помощью символов символов HTML. Есть ли что-нибудь в .NET, которое может конвертировать их в простые строки?
Как я могу декодировать HTML-символы в С#?
Ответ 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ærft A/S";
string a = HttpUtility.HtmlDecode(s).ToString();
Response.Write(a);
Вывод похож на
Svendborg Værft A/S