Pack Camo

Codificar y decodificar URL (URL encode / decode)

Codifica y decodifica URL y query strings con codificación porcentual, y separa una URL en partes. Todo se ejecuta localmente: no se sube nada.

Entrada
Text · URL
Salida
Encoded · decoded · parsed parameters

Para un valor o segmento de ruta: se codifican & = ? / #.

Texto

40 caracteres

Codificado

76 caracteres

Caf%C3%A9%20%26%20cr%C3%A8me%3F%2050%25%20off%20%2F%20today%20only%20%23deal

URL encode y decode, y un analizador para la URL completa

Este codificador y decodificador de URL convierte texto a y desde codificación porcentual mientras escribes, en las tres variantes que de verdad usa la web. El decodificador aguanta la entrada rota de la que están llenos los logs reales —un % suelto o una secuencia UTF-8 cortada— y te dice exactamente dónde está. Un analizador de URL separa cualquier dirección en sus partes y te deja editar la query string como una tabla. Todo se ejecuta localmente en tu navegador.

Cómo codificar o decodificar una URL

  1. Elige Codificar, Decodificar o Analizar URL.
  2. Al codificar, elige el método: Componente para un único valor de query o segmento de ruta, URL completa para arreglar una dirección sin romperla, o Formulario para que coincida con lo que envía un formulario HTML.
  3. Al decodificar, decide si + significa un espacio. Lo significa en las query strings y en los cuerpos de formulario; no en las rutas.
  4. Copia el resultado o pásalo de nuevo a la entrada para comprobar la ida y vuelta. En Analizar URL, edita, añade o quita parámetros de query y la URL se reconstruye por ti.

Qué hace la codificación porcentual

Una URL solo puede contener un conjunto limitado de caracteres ASCII, y varios de ellos tienen una función: / separa los segmentos de ruta, ? inicia la query, & y = separan los parámetros y # inicia el fragmento. Cualquier otro carácter, o uno reservado usado como dato, se escribe como % seguido de dos dígitos hexadecimales por cada uno de sus bytes UTF-8. Un espacio se convierte en %20, & en %26 y é, que son dos bytes en UTF-8, en %C3%A9.

Equivocarse aquí es un error clásico: una búsqueda de "sal & pimienta" que llega solo como "sal ", porque el & sin codificar inició un parámetro nuevo.

¿encodeURIComponent, encodeURI o codificación de formulario?

Componente (encodeURIComponent)
Codifica todo excepto letras, dígitos y - _ . ! ~ * ' ( ). Úsalo para una pieza de una URL: un valor de query, un segmento de ruta, una URL de redirección pasada como parámetro. Es la opción correcta nueve de cada diez veces.
URL completa (encodeURI)
Deja intactos los caracteres que dan estructura a una URL (: / ? # & = etc.) y codifica el resto, como espacios y letras no ASCII. Úsalo con una dirección completa que quieras hacer válida, nunca con un único valor: no codificará los & o = que contenga.
Formulario (application/x-www-form-urlencoded)
Lo que envían los navegadores al enviar un formulario y lo que produce URLSearchParams: los espacios se convierten en + y solo las letras, los dígitos y * - . _ se quedan como están.

Decodificación, signos + y secuencias mal formadas

El carácter + significa un espacio solo en la query string y en los cuerpos de formulario; en una ruta es un signo más literal. Por eso la decodificación tiene un interruptor + como espacio en lugar de adivinar. Si un valor decodificado muestra signos más donde debería haber espacios, actívalo.

decodeURIComponent de JavaScript lanza "URI malformed" en el primer % que no va seguido de dos dígitos hexadecimales —basta con "100%"— o ante una secuencia de bytes que no es UTF-8 válido, como un texto codificado en porcentaje como Latin-1 (%E9 para é). Este decodificador sigue adelante: decodifica todo lo válido, deja las partes rotas como estaban y enumera cada una con su línea y columna para que puedas encontrarla en una línea de log larga.

Leer y editar una URL

El analizador muestra el protocolo, las credenciales, el host, el puerto, la ruta, la query y el fragmento de cualquier URL absoluta, decodificados para que se lean bien. Los parámetros de query aparecen como una tabla clave/valor: cambia un valor, añade un parámetro o elimina uno, y la URL completa se reconstruye con la codificación correcta. Es una forma rápida de quitar parámetros de seguimiento como utm_source o de ver adónde apunta realmente un enlace de redirección largo.

Para otras codificaciones, consulta el codificador Base64 y el codificador de entidades HTML, que escapa texto para HTML y no para URL.

Preguntas frecuentes

¿Qué es la codificación de URL?
La codificación de URL, o codificación porcentual, sustituye los caracteres no permitidos o con un significado especial en una URL por % seguido del valor hexadecimal de cada uno de sus bytes UTF-8. Un espacio se convierte en %20 y & en %26.
¿Un espacio se codifica como %20 o como +?
Ambos son correctos en sitios distintos. %20 funciona en todas partes. + significa un espacio solo en query strings y envíos de formularios, que es lo que produce la codificación de formulario; en una ruta, + es un signo más literal.
¿Qué diferencia hay entre encodeURI y encodeURIComponent?
encodeURIComponent codifica los caracteres reservados como / ? & = y #, así que sirve para un único valor dentro de una URL. encodeURI los deja intactos, así que sirve para una URL completa cuya estructura debe conservarse.
¿Por qué me sale el error "URI malformed"?
La entrada contiene un % que no va seguido de dos dígitos hexadecimales, o bytes codificados en porcentaje que no son UTF-8 válido. Esta herramienta decodifica el resto de todos modos y muestra dónde está cada problema.
¿Cómo decodifico los parámetros de una URL?
Pega la URL en Analizar URL para ver cada parámetro de query decodificado en una tabla, o pega solo la query string en Decodificar con + como espacio activado.
¿Qué caracteres no hace falta codificar en una URL?
Las letras de la A a la Z y de la a a la z, los dígitos y - . _ ~ son siempre seguros. Todo lo demás debe codificarse cuando es un dato y no parte de la estructura de la URL.
¿Se envía mi URL a algún sitio?
No. La codificación, la decodificación y el análisis se ejecutan en tu navegador, así que las URL con tokens o datos personales nunca salen de tu dispositivo.