Codificar / decodificar URL
Codifica o decodifica componentes de URL y cadenas de consulta
Sobre esta herramienta
Caracteres como espacios, ampersands y letras no ASCII no pueden aparecer tal cual en una URL, así que se codifican con porcentaje: un espacio se convierte en %20, 你 se convierte en %E4%BD%A0. Esta herramienta codifica texto para incluirlo con seguridad en URLs y decodifica cadenas con escapes de porcentaje de vuelta a texto legible, incluida la convención del + para espacios usada en cadenas de consulta.
Se ofrecen dos modos de codificación porque el propio JavaScript tiene dos: el modo componente (encodeURIComponent) escapa todo lo que podría delimitar una URL, que es lo que quieres para un valor individual de la cadena de consulta; el modo URI completo (encodeURI) preserva los caracteres estructurales como /, ? y &, para cuando codificas una URL entera que debe seguir siendo navegable.
La decodificación es estricta con las secuencias % malformadas — un % suelto o %ZZ se reporta como error en lugar de dejarse pasar en silencio, que es exactamente como lo tratarán los navegadores y servidores.
Preguntas frecuentes
- ¿Cuándo uso el modo componente frente al modo URI completo?
- Para codificar un valor que va dentro de una URL (una búsqueda, un destino de redirección, un correo en un parámetro) → modo componente, para que & y = dentro del valor no rompan la cadena de consulta. Para codificar una URL completa para mostrarla o transportarla → modo URI completo, para que la estructura de la URL sobreviva.
- ¿Por qué + a veces significa un espacio?
- El formato application/x-www-form-urlencoded — usado por los envíos de formularios HTML y las cadenas de consulta — codifica históricamente los espacios como +. En las rutas de URL, + es solo un signo más. El decodificador aquí trata + como espacio, siguiendo la semántica de cadenas de consulta; %20 funciona siempre en todas partes.
- ¿Por qué mi cadena está doblemente codificada (%2520)?
- %25 es la codificación del propio %, así que %2520 significa que el texto %20 fue codificado una segunda vez. Ocurre cuando dos capas de un sistema codifican cada una. Ejecuta la decodificación dos veces aquí para desenvolverlo, y luego arregla la capa que no debería estar codificando.
- ¿Se manejan correctamente los caracteres Unicode?
- Sí — el texto se codifica primero como UTF-8 y cada byte se escapa con porcentaje, según el estándar de URL de WHATWG. Por eso un carácter CJK se convierte en tres grupos %XX.