Codificacion URL
Codificar y decodificar URL
Entrada
Resultado
Codificacion URL: por que ciertos caracteres necesitan transformarse
Las URL solo aceptan un conjunto limitado de caracteres: letras, numeros y unos pocos simbolos. En cuanto aparece un espacio, una tilde o un caracter especial, hay que convertirlo al formato %XX -- lo que se conoce como codificacion porcentual. Sin esto, el servidor puede no entender la peticion.
Por que la codificacion URL es imprescindible
Las URL siguen el estandar RFC 3986 y solo aceptan caracteres alfanumericos mas un punado de caracteres especiales (-._~). Un espacio, una ene o un acento en una URL, y el servidor puede fallar al interpretarla. Los caracteres & y = funcionan como separadores de parametros de consulta: si aparecen dentro de los propios datos, hay que codificarlos para evitar ambiguedades. La codificacion URL es, sencillamente, el mecanismo basico que permite transmitir datos de forma fiable en la web.
Los caracteres que se codifican con mas frecuencia
Los espacios se convierten en %20 (o + en algunos contextos), el & pasa a ser %26, el = se transforma en %3D y el ? en %3F. Los caracteres acentuados del espanol se codifican en UTF-8, generando varias secuencias %XX por caracter. La barra (/) sirve como separador de ruta y solo debe codificarse cuando forma parte de un valor de parametro. Conocer estas reglas evita los bugs tipicos de URL mal formadas.
Buenas practicas para desarrolladores
La regla de oro: codifica solo los valores de los parametros de consulta, nunca la estructura de la URL en si. En JavaScript, usa encodeURIComponent() para valores y encodeURI() para URL completas. En Python, es urllib.parse.quote(). La doble codificacion -- cuando codificas una cadena que ya esta codificada -- es un error clasico: acabas con %2520 en lugar de %20. Recuerda siempre codificar los valores de parametros en tus llamadas API, porque pueden contener caracteres especiales inesperados.