2010-11-19 17 views
6

Tengo una clase de utilidad para enviar correos electrónicos. Los correos electrónicos se generan como html.Codificación Html en la biblioteca de clases .NET

Tengo problemas para codificar caracteres especiales que no se muestran correctamente.

Sin embargo, no sé cómo usar HtmlEncode ya que no tengo un HttpContext actual. ¿Hay una clase .Net que traduzca los caracteres especiales a códigos html sin ejecutar bajo Asp.Net?

Espero que tenga sentido, estoy un poco raro sobre cómo funciona todo esto. ¡Gracias!

Respuesta

10

Puede importar el espacio de nombres System.Web y usar la clase HttpUtility. Altohugh es una asamblea web. No creo que sea necesario estar funcionando en un entorno web para que funcione.

+0

¡Gracias, no estoy seguro de por qué no lo encontré! – fearofawhackplanet

+9

Agregar una dependencia en System.Web no es una gran idea para una biblioteca de clases. Use System.Net.WebUtility.HtmlEncode() en su lugar. – saille

2

Realmente debe considerar usar la biblioteca AntiXSS del WPL.

  1. Usted no necesita System.Web!

  2. Utiliza un principio de inclusión de lista blanca (System.Web encoding usa la lista negra). Solo se confiarán en los caracteres que se sabe que son seguros y todos los demás se codificarán correctamente

Cuestiones relacionadas