Skip to main content

Blog de Vicente Pazo

Go Search
Home
  

Blog de Vicente Pazo > Posts > URLEncode y HTMLEncode
URLEncode y HTMLEncode

Muchas veces confundimos ambas funciones y el uso de las mismas no queda muy claro, mucho más tras leer la documentación de la MSDN, que es bastante confusa con estos dos métodos. Además, para liar más las cosas existe otra función llamada HttpUtility.UrlPathEncode que muchas veces nos dará el resultado correcto.

 

Las dos funciones codifican caracteres especiales (no alfanuméricos, acentos, etc) de manera que sean seguras para el protocolo HTTP. Sin embargo, podemos obtener resultados no deseados si no conocemos las diferencias entre ambas.

Imaginemos que tenemos:

string sTest = "Esto es un string de prueba <Test String>.";

string sEncoded = Server.HtmlEncode(sTest);

 

El valor de sEncoded sería "Esto es un string de prueba &lt;Test String&gt;". Sin embargo, esto puede llevar a problemas si vamos a pasar la cadena post, ya que como la cadena incluye un ampersand al hacer un Request.Form hará un Split obtendremos más parámetros de los necesarios.

 

Para solucionar esto, usaremos el HttpUtility.UrlEncode que sí puede ser usado de forma segura en un post, ya que la cadena resultante sería "Esto+es+un+string+de+prueba+%3cTest+String%3e.".

 

Comments

There are no comments yet for this post.