piapia123
es

Codificar y decodificar URL

Cifrado

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

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

  1. Elige la dirección: codificar o decodificar
  2. Elige el alcance: un valor de parámetro o una URL completa
  3. Pega tu contenido — el resultado aparece al instante
  4. 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