2008-09-23 19 views

Respuesta

531

Puede utilizar HttpUtility.HtmlDecode

Si está utilizando .NET 4.0 o superior también se puede utilizar WebUtility.HtmlDecode que no requiere una referencia de ensamblado extra, ya que está disponible en el espacio de nombres System.Net.

+1

Se supone que está en System.Web, pero no lo es. No he tocado C# durante más de un año, si me siento un poco más frustrado con esto, los convertiré manualmente. – Vasil

+1

Está en la versión .NET 2.0 de System.Web –

+0

Estoy usando exactamente 2.0, pero estoy escribiendo una aplicación de consola. – Vasil

6

Use Server.HtmlDecode para decodificar las entidades HTML. Si desea escape el HTML, es decir, muestra el carácter < y > para el usuario, use Server.HtmlEncode.

+4

Puede que no haya un contexto servidor (es decir, cuando se ejecuta casos de prueba y similares) me quedé en este trampa antes :) –

15

Si no hay contexto de Servidor (es decir, su funcionamiento sin conexión), puede usar HttpUtility. HtmlDecode.

+1

estuvo de acuerdo, por eso utilizo HttpUtility, cayeron en la misma trampa = P –

41

Como dice @CQ, necesita usar HttpUtility.HtmlDecode, pero no está disponible en un proyecto .NET no ASP por defecto.

Para una aplicación que no sea ASP .NET, debe agregar una referencia al System.Web.dll. Haga clic derecho en su proyecto en el Explorador de soluciones, seleccione "Agregar referencia", luego explore la lista para System.Web.dll.

Ahora que se añade la referencia, debe ser capaz de acceder el método que utiliza el nombre completo System.Web.HttpUtility.HtmlDecode o insertar una declaración using para System.Web para facilitar las cosas.

170

En .Net 4.0:

System.Net.WebUtility.HtmlDecode() 

No hay necesidad de incluir el montaje de un proyecto de C#

+5

Es mejor solución, porque HttpUtility no decodifica el símbolo "'" .. no sé qué .. – RredCat

+0

Esto es necesario en el desarrollo de Windows universal plataforma. – matthewsheets

4

También vale la pena mencionar que si usted está utilizando HtmlAgilityPack como yo, usted debe utilizar HtmlAgilityPack.HtmlEntity.DeEntitize(). Toma un string y devuelve un string.

1

Para decodificar HTML echar un vistazo a continuación código

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

de salida es como

Svendborg Værft A/S 
+0

'ToString()' es redundante ya que HtmlDecode devuelve una cadena – Justin

Cuestiones relacionadas