У меня есть адреса электронной почты, закодированные с помощью символов символов 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