2011-12-21 126 views
6

Estoy haciendo una aplicación que implica el inicio de sesión en un servidor, sin embargo, los datos de la publicación necesitan cierta codificación.¿Cómo puedo usar la función HtmlEncode (o HtmlDecode) en Visual Studio (vb.net)?

Dim strEncUsername As String = Server.HtmlEncode(Me.txtUsername.Text) 

Sin embargo, como esto no es una aplicación asp.net, esto no funciona. ¿Cómo se supone que debo hacer esto? Intenté buscar algo de Imports, pero no tuve suerte.

Respuesta

13

Si se agrega una referencia a System.Web a su proyecto puede utilizar el siguiente para codificar la cadena html

Dim strEncUsername As String = System.Web.HttpUtility.HtmlEncode(Me.txtUsername.Text) 

MSDN Documentation for HttpUtility.HtmlEncode

Editar
Captura de pantalla de IntelliSense muestra HtmlEncode:
Screenshot of intellisense showing HtmlEncode

Captura de pantalla de las referencias en el proyecto t:
Screenshot of references in project

de salida de la aplicación:

unsafe text: <em>evil em tags within</em> 
safe text: &lt;em&gt;evil em tags within&lt;/em&gt; 
+0

No funciona. (el problema más común para cualquier codificador). 'HTTPUtility' no es miembro de 'Web'. Estoy usando VS 2008. ¿Es este un nuevo miembro del espacio de nombres System.web? No debería ser. –

+0

@AustinBurk, ha sido parte de System.web desde al menos .NET Framework 1.1 según MSDN. ¿Definitivamente ha hecho referencia al DLL correcto? Crearé una aplicación de consola rápida para probarme. – davidsleeps

+0

Este comentario estúpido no quiere darme saltos de línea. Bastante seguro. (anteriormente en código: importaciones System.Web más tarde en código: Dim strEncUsername como secuencia = System.Web.HttpUtility.HtmlEncode (Me.txtUsername.Text) –

1

Usted shoud utilizar HttpUtility (añadir referencia a System.Web primero).

5

System.web no está disponible en el perfil del cliente NET 4.0 ... Me pregunto por qué.

Ni siquiera se puede agregar como referencia.

Pero lo mismo se puede lograr mediante el uso de:

System.Net.WebUtility.HtmlDecode

+0

Gracias, SOLO hice esto como un mes Hace ya y lo olvidé, pero lo tienes bien. Para 4.0+ necesitas System.Net.WebUtility. Me alegro de que haya eliminado completamente System.Web de mis aplicaciones web.Es todo System.Net – Suamere

Cuestiones relacionadas