Codificar y decodificar URL
CifradoTodo se ejecuta en tu navegador: no se sube nada
Convierte texto a percent-encoding y al revés. Los dos métodos disponibles se diferencian en exactamente once caracteres: encodeURIComponent convierte & en %26, mientras que encodeURI lo deja igual. Usa el primero para valores de parámetro —un & o = sin escapar dentro de un valor se lee como separador y lo parte en parámetros extra en silencio— y el segundo para una URL completa, donde :// ? & = # son estructura y no datos. Elegir mal nunca lanza un error; solo produce un enlace que a otra persona no le abre, y por eso aquí la elección es explícita. Cuando la decodificación falla, también te dice por qué: un escape truncado, o bytes que nunca fueron UTF-8.
Funciones
- Ambos sentidos: texto ⇄ percent-encoding
- Elige encodeURIComponent para valores de parámetro o encodeURI para una URL completa
- Chino, espacios y emoji codificados como UTF-8, igual que lo que pone el navegador en la barra de direcciones
- Los errores de decodificación distinguen un escape truncado de bytes que no son UTF-8
- Nunca trata + como espacio — esa regla es de la codificación de formularios, no del percent-encoding
- El resultado se actualiza mientras escribes — sin botón que pulsar
Cómo se usa
- Elige la dirección: codificar o decodificar
- Elige el alcance: un valor de parámetro o una URL completa
- Pega tu contenido — el resultado aparece al instante
- Pulsa Copiar para llevarte el resultado
Preguntas frecuentes
- ¿Cuál de los dos debo usar?
- Una regla lo cubre: encodeURI para una URL completa, encodeURIComponent para un valor de parámetro suelto. Solo difieren en ; , / ? : @ & = + $ # — encodeURI los conserva porque la estructura de la URL depende de ellos, mientras que encodeURIComponent los escapa. Pasar una URL entera por encodeURIComponent escapa incluso el :// de https:// y te deja una dirección que ya no abre.
- ¿Por qué sigue escapado %3F después de decodificar?
- Porque el alcance está en encodeURI. Su pareja decodeURI deja a propósito sin tocar los caracteres reservados: %3F significa «un ? literal dentro de los datos», y devolverlo a ? cambiaría lo que significa la URL. Cambia a encodeURIComponent para decodificar también esos.
- ¿Por qué un espacio es %20 y no +?
- En percent-encoding un espacio es %20. El atajo + viene del envío de formularios HTML (application/x-www-form-urlencoded), que es otro esquema. Esta herramienta sigue percent-encoding y no convertirá + en un espacio.
- ¿Qué significa «los bytes no son UTF-8 válido»?
- Que los escapes están bien formados, pero los bytes que producen no son UTF-8 válido — normalmente porque el enlace viene de un sistema antiguo con GBK o Latin-1. El carácter U+4F60 es %C4%E3 en GBK pero %E4%BD%A0 en UTF-8, y esta herramienta no adivina cuál querías.
Herramientas relacionadas
Visor UTF-8
CifradoMuestra bytes UTF-8, puntos de código, codificación porcentual, entidades HTML y escapes en paralelo, con caracteres y bytes contados aparte.
Analizador de URL
WebDescompone una URL en esquema, host, puerto, ruta, parámetros y ancla, con cada parámetro en crudo y decodificado. Todo en tu navegador.
Base64
CifradoConvierte texto a Base64 y al revés, con UTF-8 correcto para acentos, chino y emoji. Todo se ejecuta en tu navegador: no se sube nada.
Entidades HTML
CifradoConvierte < > & y las comillas en entidades HTML y las devuelve en una sola pasada, así que &lt; da <, no un ángulo. En tu navegador.
JWT (decodificar y verificar)
CifradoDivide un JWT en cabecera, payload y firma, verifica firmas HS256/384/512 con tu secreto y traduce exp y nbf a fechas. Todo en tu navegador.
Escape Unicode
CifradoConvierte texto no ASCII y emoji en escapes \uXXXX o \xXX y los devuelve, con los emoji escritos como pares suplentes correctos. En tu navegador.