Codificación de URLs

Cuando utilices páginas con paso de variables entre ellas (como parámetros en la URL) es importante que tengas en cuenta que el navegador Netscape no será capaz de interpretar caracteres especiales como espacios, guiones, o la letra Ñ. Esta caracteristica puede evitarse utilizando el método URLencode del objeto server mediante la cual se puede formatear cualquier cadena con caracteres de escape que serán correctamente procesados por los dos navegadores más conocidos del mercado.

Por citar un ejemplo el valor "MªAngeles Muñoz" se convertiría -utilizando URLEncode- en "M%AAAngeles+Mu%F1oz"

Página de envio de datos: envio.asp

<html>
<head>
	<title>Datos personales</title>
</head>
<body>
Enlace a la <a href="test.asp?nombre=MªAngeles Muñoz">página de pruebas</a>
</body>
</html>

Página de recepción de datos: test.asp

<html>
<head>
	<title>Datos personales</title>
</head>
<body>
    El nombre recibido es: <% response.write request.querystring("nombre") %>
</body>
</html>

Si ejecutas el enlace al que apunta esta página, verás que con Netscape se produce un error de tipo 400 Petición errónea

La sentencia correcta debería haber sido:

    Enlace a la <a href="test.asp?nombre=<%=server.URLEncode("MªAngeles 
             Muñoz")%>">página de pruebas</a>

Observa en la siguiente imagen la diferencia en la URL respecto a la imagen anterior (incorrecta)

Codificación de carácteres en formato HTML

El concepto inverso al explicado anteriormente también puede ser necesario aplicarlo en los desarrollos Web. Para ello utilizaremos el método HTMLEncode del objeto Server mediante el cual podremos mostrar una cadena con los caracteres de escape que se utilizan en HTML.

Un ejemplo de la utilidad de HTMLEncode, lo tenemos cuando se desea mostrar un texto recibido por querystring como valor de un objeto de un formulario HTML.

Sigue el siguiente ejemplo para ponerlo en práctica:

Formulario de recepción de datos: verDatos.asp

<html>
<head>
	<title>Datos personales</title>
</head>
<body>
<form name="form1" action="verDatos.asp" method="get">
   Nombre: <input type ="text" name="nombre" value=
            "<%=Server.HTMLencode(request.querystring("nombre"))%>"> <br>
   Dirección: <input type ="text" name="direccion" value=
            "<%=Server.HTMLencode(request.querystring("direccion"))%>"> <br>
   Aficiones:<input type ="text" name="aficiones" value=
            "<%=Server.HTMLencode(request.querystring("aficiones"))%>"> <br>
   <input type=submit>
</form>
</body>
</html>

En el ejemplo anterior, los parametros:

serían convertidos mediante HTMLEncode en

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO