onlinetools.dev

Codificar / decodificar URL

Codifica o decodifica componentes de URL y cadenas de consulta

Se ejecuta localmente
loading…
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.
Herramientas relacionadas