Decodificador de URL
Decodifica cualquier cadena con codificación porcentual a texto legible
Codificado en Porcentaje
Texto Decodificado
¿Qué es el Decodificador de URL?
Pega una cadena con codificación porcentual en el panel izquierdo y el panel derecho mostrará el original. Por debajo ejecuta decodeURIComponent, que recorre cada secuencia %XX de la entrada, trata esos pares hexadecimales como bytes UTF-8 y reconstruye los caracteres originales. Así %20 se convierte en un espacio, %26 en &, %E2%9C%85 en una marca de verificación. La dirección inversa vive en el Codificador de URL.
¿Por qué decodificar es complicado? Porque no todos los % que se ven por ahí forman parte de una secuencia válida con codificación porcentual. Un % solitario seguido de caracteres no hexadecimales (%G1, % al final de la cadena) está mal formado y el decodificador lanzará un URIError: URI malformed. Esta página captura ese error y muestra un mensaje amigable de "Codificación inválida" en lugar de un stack trace, así que pegar algo corrupto no rompe la página. Las reglas exactas de qué se considera válido viven en el RFC 3986 §2.1 y en el Estándar URL de WHATWG.
Ojo con la doble codificación. Si decodificas una cadena y la salida AÚN contiene caracteres % (por ejemplo recibes Ava%2520Chen en lugar de Ava Chen), el valor fue codificado dos veces en algún punto de la cadena — normalmente un proxy o un framework que codificó automáticamente un valor ya codificado. Decodificar otra vez te llevará al resto del camino. Las notas de Wikipedia sobre doble codificación tienen una buena explicación de cómo ocurre. Todo se ejecuta en tu navegador. Sin subidas, sin servidor, sin logs.
Cómo Usar el Decodificador de URL
Tres pasos. La página se actualiza mientras escribes — sin botón de Convertir.
Pega tu cadena codificada o haz clic en Ejemplo
Suelta una cadena con codificación porcentual en el panel izquierdo. Haz clic en Ejemplo para cargar un caso realista. Entrada de ejemplo:
Ava%20Chen%20%26%20friends%3F%20customer%40shop.com%20%20100%25%20off!Una entrada mal formada (un <code>%</code> solitario, un par hexadecimal inválido como <code>%G1</code>) aparecerá como un mensaje de "Codificación inválida" en el panel de salida — consulta la <a href="https://tc39.es/ecma262/#sec-decodeuricomponent-encodeduricomponent" target="_blank" rel="noopener">especificación ECMAScript de decodeURIComponent</a> para las reglas exactas de fallo.
Lee la salida decodificada
El panel derecho muestra el texto decodificado. %20 se convierte en un espacio, %26 en &, %3F en ?, %40 en @, %25 en %. Se actualiza mientras escribes.
Copia o descarga
Haz clic en Copiar para poner el texto decodificado en tu portapapeles, o en Descargar para guardarlo como un archivo .txt. Usa Limpiar en el panel de entrada para empezar de nuevo. Para ir en sentido contrario, pásate por el Codificador de URL.
Cuándo Lo Usarías de Verdad
Leer lo que realmente hay en un parámetro de consulta
Una URL como ?customer=Ava%20Chen&tag%5B0%5D=red es difícil de leer con los códigos de porcentaje todavía puestos. Pega un solo valor aquí y recibirás Ava Chen o tag[0], lo que deja claro si el parámetro es lo que esperabas. Para descomponer una URL completa, el Analizador de URL hace los parámetros de consulta automáticamente.
Depurar valores con doble codificación
Pegas Ava%2520Chen, decodificas una vez, recibes Ava%20Chen. Esa capa extra es la prueba irrefutable — en algún punto un proxy, framework o librería codificó el valor por segunda vez. Decodifica otra vez para obtener la cadena real. Las especificaciones de OAuth son culpables habituales porque los valores de redirect_uri suelen pasar por capas que los vuelven a codificar.
Inspeccionar URLs de webhooks y analítica desde logs
Cuando algo falla en producción, la URL en el log de acceso suele estar completamente codificada — %7B%22event%22%3A%22signup%22%7D en lugar del JSON que el webhook envió realmente. Pégala aquí y obtendrás {"event":"signup"}, que ya es algo legible.
Decodificar un enlace mágico o URL de restablecimiento de contraseña
Cuando un cliente como Marco Rivera dice "el enlace de restablecimiento está roto", el enlace contiene un token, un email y un destino de redirección — todo con codificación porcentual. Decodificar el parámetro sospechoso muestra si el email es la dirección correcta, si el token sobrevivió a un cliente de correo demasiado entusiasta, o si el redirect URI quedó truncado.
Preguntas Frecuentes
¿Qué pasa con entradas mal formadas como un % solitario o %G1?
El decodeURIComponent nativo lanza un URIError: URI malformed ante una secuencia que no es un par hexadecimal %XX válido. Esta página lo captura y escribe "Codificación inválida: ..." en el panel de salida en lugar de fallar. Las causas más comunes son un % literal suelto que debería haber sido %25, o un copia-pega que perdió un dígito hexadecimal final.
¿Cómo sé si mi entrada está doblemente codificada?
Decodifica una vez. Si la salida todavía tiene caracteres % (especialmente %20, %2F, %3A) y se suponía que era texto plano, fue codificada dos veces. Decodifica la salida de la primera decodificación. Tres rondas es raro pero posible — normalmente significa una cadena de tres servicios diferentes que codificaron el mismo valor.
¿Y los signos + — deberían decodificarse como espacios?
No con decodeURIComponent — deja los + en paz. La convención +-como-espacio pertenece a application/x-www-form-urlencoded (envíos de formularios HTML), no a la codificación porcentual general de URLs. Si tu entrada vino del cuerpo de un formulario y tiene + por espacios, ejecuta .replace(/\+/g, "%20") primero, luego decodifica. La especificación WHATWG para application/x-www-form-urlencoded describe esta situación de dos sabores.
¿Funciona correctamente con Unicode y emojis?
Sí. Las secuencias UTF-8 multi-byte con codificación porcentual (p. ej. %E2%9C%85 para una marca de verificación, %F0%9F%9A%80 para un cohete) se decodifican directamente a los caracteres originales. La única forma de que esto falle es si el codificador usó un charset distinto a UTF-8, cosa que los sistemas modernos no hacen.
¿La entrada que pego se envía a algún sitio?
No. La decodificación se ejecuta enteramente en tu navegador. No hay llamadas de red, ni logs de servidor, nada sale de tu máquina. Tokens, emails, URLs firmadas — todo es seguro de pegar.
¿Qué tamaño de cadena puedo decodificar aquí?
Hay un límite de 256 KB en la entrada. Si tienes cientos de KB de texto con codificación porcentual, casi seguro tienes una carga útil que debería decodificarse en el servidor en lugar de pegarse en una herramienta — cargas codificadas tan grandes suelen indicar un mal uso de la codificación de URL para un trabajo que pide base64 o un cuerpo de petición.
Otras Herramientas de URL y Codificación
Decodificar es una operación. Esto es lo que combina naturalmente con ello: