Codificar una URL (URL encoding o percent-encoding) consiste en reemplazar caracteres que no son seguros o que tienen significado especial por una secuencia % seguida de dos dígitos hexadecimales. Así se pueden enviar espacios, símbolos y caracteres no ASCII en query strings y en rutas sin romper la estructura de la URL.
¿Por qué codificar?
En una URL, caracteres como &, =, ?, #, / y el espacio tienen significado especial. Si un valor de parámetro contiene, por ejemplo, a&b, el servidor podría interpretar a y b como parámetros distintos. Codificando, a&b se convierte en a%26b y se trata como un único valor. Lo mismo aplica a espacios (que se codifican como %20 o + en query strings), acentos y caracteres Unicode: deben ir codificados para que la URL sea válida y no se malinterprete.
Dónde se usa
- Query strings:
?nombre=Juan%20García&busqueda=c%23— los valores con espacios, &, = o caracteres especiales deben ir codificados. - Rutas (path): si un segmento contiene espacios o caracteres reservados, también se codifican (por ejemplo
/buscar/hello%20world). - Formularios: cuando el method es GET, los campos se envían en la URL y el navegador suele codificarlos automáticamente; con POST en
application/x-www-form-urlencodedse usa la misma codificación. - Enlaces y APIs: al construir URLs en código (por ejemplo para un link o una petición), hay que usar la función de codificación del lenguaje (
encodeURIComponenten JavaScript para valores de parámetros, no para la URL completa).
Cómo codificar y decodificar
Un codificador/decodificador de URL online te permite pegar una URL o un texto y obtener la versión codificada o decodificada. Úsalo para depurar parámetros, generar enlaces correctos o entender qué significa una URL con muchos %XX. En programación, no concatenes strings a mano: usa encodeURIComponent() para valores de query en JavaScript, y en otros lenguajes las utilidades estándar de URL (por ejemplo encodeURIComponent o equivalentes) para evitar errores y vulnerabilidades.