Codificador y decodificador de URL

Aplica codificación porcentual a texto para URLs y query strings, decodifica URLs codificadas y descompón cualquier URL en sus partes con los parámetros de consulta decodificados.

Funciona en tu navegadorSin registroNo se sube nada

Codificado

Cómo usar: Codificar / decodificar URL

  1. Elige Codificar o Decodificar.
  2. Al codificar, elige Componente para un solo valor de consulta o segmento de ruta, URL completa para conservar la estructura de la URL, o Datos de formulario para application/x-www-form-urlencoded.
  3. Pega tu texto. El resultado aparece al instante; los escapes mal formados se indican con su posición.
  4. Pega una URL completa en el Analizador de URL para ver su host, ruta, fragmento y cada parámetro de consulta decodificado.

¿Qué es la codificación de URL?

Las URLs solo pueden contener un conjunto limitado de caracteres ASCII (RFC 3986). Todo lo demás, incluidos los espacios, las letras con tilde o la ñ y los caracteres con significado especial como &, ? y #, se escribe como un signo de porcentaje seguido de dos dígitos hexadecimales por cada byte UTF-8. Un espacio pasa a ser %20 y é pasa a ser %C3%A9.

encodeURIComponent frente a encodeURI

FunciónNo modificaÚsala para
encodeURIComponentA-Z a-z 0-9 - _ . ~Un solo valor de consulta, segmento de ruta o nombre de parámetro
encodeURITambién : / ? # [ ] @ ! $ & ' ( ) * + , ; =Una URL completa cuya estructura debe mantenerse

Usar encodeURI en un valor de consulta es un bug clásico: un & dentro del valor no se escapa, así que divide el parámetro en dos. El modo Componente de esta herramienta también escapa ! ' ( ) * para cumplir estrictamente RFC 3986.

¿%20 o + para los espacios?

En las rutas, un espacio debe ser %20. En los envíos de formularios HTML (application/x-www-form-urlencoded) y en muchas query strings, el espacio se escribe como +. Al decodificar, activa Tratar + como espacio para datos de formulario y desactívalo cuando importe un signo más literal, como en jane+test@example.com.

Preguntas frecuentes

¿Por qué obtengo «Escape mal formado» al decodificar?
Un % debe ir seguido exactamente de dos dígitos hexadecimales. Un signo de porcentaje literal, como en «50% de descuento», debería haberse codificado como %25. El error muestra la posición de la secuencia incorrecta.
¿Qué significa «Secuencia de bytes UTF-8 no válida»?
Los bytes no se codificaron como UTF-8, a menudo porque el texto lo generó un sistema heredado que usa Latin-1 (por ejemplo, %E9 para é en lugar de %C3%A9), o porque la cadena se cortó en mitad de un carácter.
¿Debo codificar la URL completa o solo los parámetros?
Codifica cada nombre y valor de parámetro por separado con la codificación de componente y luego únelos con = y &. Codificar una URL completa en modo componente escaparía también :// y la rompería.
¿Es un problema la doble codificación?
Sí. Codificar una cadena ya codificada convierte %20 en %2520. Si ves %25 seguido de dígitos hexadecimales, probablemente el valor se codificó dos veces. Decodifícalo dos veces para recuperar el original.

Herramientas relacionadas