Tengo direcciones de correo electrónico codificadas con entidades de caracteres HTML. ¿Hay algo en .NET que pueda convertirlos en cadenas simples?
397
Puedes usar HttpUtility.HtmlDecode
Si está utilizando .NET 4.0+, también puede usarlo, WebUtility.HtmlDecodeque no requiere una referencia de ensamblaje adicional, ya que está disponible en el System.Netespacio de nombres.
HttpUtility.UrlDecodeEn .Net 4.0:
No es necesario incluir el ensamblaje para un proyecto de C #
fuente
Como dice @CQ, debe usar HttpUtility.HtmlDecode , pero no está disponible en un proyecto que no sea ASP .NET de forma predeterminada.
Para una aplicación que no sea ASP .NET, debe agregar una referencia a
System.Web.dll. Haga clic derecho en su proyecto en el Explorador de soluciones, seleccione "Agregar referencia", luego busque la listaSystem.Web.dll.Ahora que se agrega la referencia, debería poder acceder al método utilizando el nombre completo
System.Web.HttpUtility.HtmlDecodeo insertar unausingdeclaración paraSystem.Webfacilitar las cosas.fuente
Si no hay contexto de servidor (es decir, se está ejecutando sin conexión), puede usar HttpUtility . HtmlDecode .
fuente
Use
Server.HtmlDecodepara decodificar las entidades HTML. Si desea escapar del HTML, es decir, mostrar el carácter<y>al usuario, useServer.HtmlEncode.fuente
Para decodificar HTML, eche un vistazo debajo del código
La salida es como
fuente
También vale la pena mencionar que si está utilizando HtmlAgilityPack como yo, debería usarlo
HtmlAgilityPack.HtmlEntity.DeEntitize(). Toma astringy devuelve astring.fuente
Escriba un método estático en alguna clase de utilidad, que acepte la cadena como parámetro y devuelva la cadena html decodificada.
Incluye el
using System.Web.HttpUtilityen tu clasefuente
Para .net 4.0
Agregue una referencia al
System.net.dllproyecto conusing System.Net;luego use las siguientes extensionesfuente
Para cadenas que contienen & # x20; He tenido que decodificar dos veces la cadena. La primera decodificación la convertiría en la segunda pasada la decodificaría correctamente al carácter esperado.
fuente