Cómo funciona
La codificación de URL (percent-encoding) reemplaza los caracteres que no pueden aparecer literalmente en una dirección por secuencias %XX con su valor de byte. Por ejemplo, el espacio se convierte en %20.
El alcance "Componente" escapa también los caracteres reservados (= & / ? #): usalo para el valor de un parámetro. "URL completa" preserva la estructura de la dirección: usala para una URL entera.
En los formularios HTML el espacio se codifica como + (application/x-www-form-urlencoded); en el resto de los casos se usa %20 según el estándar RFC 3986.
Ejemplos
hola mundo & máshola%20mundo%20%26%20m%C3%A1sEl "&" se escapa (%26) para no confundirse con un separador de parámetros; "á" se codifica en UTF-8 (%C3%A1).a=1&b=2a%3D1%26b%3D2https://sitio.com/á b?x=1 2URL completa: https://sitio.com/%C3%A1%20b?x=1%202En modo "URL completa" se conservan ://, / y ?; solo se escapa lo que rompería la dirección.Casos de uso
- Armar parámetros de query de forma segura al construir una URL a mano.
- Codificar valores que contienen &, =, espacios o acentos antes de enviarlos en una petición GET.
- Decodificar una URL para leer qué valores lleva cada parámetro.
- Preparar cuerpos application/x-www-form-urlencoded para el envío de formularios.
Preguntas frecuentes
¿Cuál es la diferencia entre "Componente" y "URL completa"?
"Componente" (encodeURIComponent) escapa además =, &, /, ?, # — sirve para un valor individual. "URL completa" (encodeURI) preserva esos caracteres estructurales — sirve para una URL entera.
¿Cuándo se usa + y cuándo %20 para el espacio?
El + solo corresponde al cuerpo de formularios (application/x-www-form-urlencoded). En el resto de la URL, el estándar para el espacio es %20.
¿Por qué "á" se convierte en %C3%A1 y no en un solo %XX?
Porque se codifica en UTF-8: los caracteres no ASCII ocupan varios bytes, y cada byte se representa con su propia secuencia %XX.
¿Codificar una URL la vuelve segura?
No. Solo la vuelve válida a nivel de sintaxis. No es cifrado ni protege el contenido de ninguna manera.