Codificador, decodificador y analizador de URL

Codifica, decodifica y analiza URL, y edita la cadena de consulta.

Codifica todo menos letras, dígitos y - _ . ! ~ * ' ( ). Úsalo para un solo valor (encodeURIComponent).

Qué hace esta herramienta

Una URL solo puede llevar un conjunto pequeño de caracteres sencillos. Todo lo demás, como un espacio, una tilde, un emoji o un carácter con significado en la sintaxis de la URL, se escribe con un signo de porcentaje y dos dígitos hexadecimales por cada byte: un espacio es %20 y "é" es %C3%A9. La herramienta tiene tres pestañas. Codificar convierte el texto a esa forma, Decodificar lo devuelve y te dice exactamente qué escape está roto, y Analizar URL separa una dirección en esquema, usuario, host, puerto, ruta, consulta y fragmento, lista los parámetros en un pequeño editor y reconstruye la URL mientras los cambias.

Tres tipos de codificación

El mismo texto se puede codificar de tres maneras, y elegir mal es el error más común.

  • Componente (encodeURIComponent) codifica todo menos letras, dígitos y - _ . ! ~ * ' ( ). Úsalo para un valor que va dentro de una URL, como un término de búsqueda. a/b?c=d&e pasa a a%2Fb%3Fc%3Dd%26e.
  • URL completa (encodeURI) deja además ; , / ? : @ & = + $ #, así que una dirección completa conserva su forma: el mismo texto sigue siendo a/b?c=d&e. Es incorrecto para un valor suelto, porque un & o un = dentro se leería como sintaxis.
  • Formulario es lo que escriben los formularios HTML y URLSearchParams: el espacio pasa a + y también se codifican ~ ! ' ( ). "café au lait & crème" queda caf%C3%A9+au+lait+%26+cr%C3%A8me.

Los tres trabajan con bytes UTF-8, así que un emoji (un par sustituto en JavaScript) ocupa cuatro bytes: 😀 es %F0%9F%98%80. La mitad suelta de un par sustituto no tiene forma UTF-8, y la función de JavaScript lanza "URI malformed"; esta herramienta indica la posición.

Decodificar y qué puede fallar

Decodificar revierte cada escape. Un signo más solo es un espacio en el estilo de formulario, y %2B es siempre un más. Hay dos fallos: un % sin dos dígitos hex detrás (100%, %zz), y escapes que no forman UTF-8 válido, como %C3%28. La herramienta nombra cada problema con su posición y deja lo que no pudo decodificar tal cual, para que veas dónde está. Activa "Parar en el primer error" si prefieres no tener salida cuando algo falla. Si el resultado aún contiene escapes, como %2520 que pasa a %20, probablemente se codificó dos veces y un botón lo decodifica otra vez.

Desglosar una URL

El analizador separa primero la dirección tal como la escribiste, según la RFC 3986, y después compara cada parte con lo que hace el analizador URL del navegador y muestra la diferencia debajo: el puerto 443 por defecto se elimina, el ./ de la ruta se resuelve y un host como münchen.de se escribe xn--mnchen-3ya.de. Una consulta vacía (?) no es lo mismo que no tener consulta.

Editar la cadena de consulta

Cada parámetro es una fila con nombre y valor. Se conservan el orden y los nombres repetidos; los parámetros que no tocas vuelven tal como estaban escritos, y los editados se codifican con %20 o con + si la consulta ya lo usaba. Reordena, elimina o añade filas y copia la URL reconstruida. Mira también la herramienta Base64 y el formateador JSON cuando un parámetro contenga datos codificados. Todo se ejecuta en tu navegador, no se sube nada y nunca se abre un enlace por ti.

Preguntas frecuentes

¿Qué diferencia hay entre encodeURI y encodeURIComponent?

encodeURIComponent codifica los caracteres con significado en la sintaxis de la URL (/ ? : @ & = + $ # , ;), así que sirve para un valor suelto. encodeURI los deja, así que sirve para una dirección completa. Usar encodeURI en un valor deja que un & o un = dentro cambie el sentido de la URL.

¿El espacio debe ser %20 o +?

En la ruta, siempre %20. En la consulta, un + es un espacio solo en la codificación de formulario, la que usan los formularios HTML y URLSearchParams. Muchos servidores leen ambos, pero %20 es más seguro, y %2B es siempre un más literal.

¿Por qué el texto decodificado aún tiene signos %?

O se codificó dos veces (%2520 pasa a %20 y luego a un espacio), o los signos de porcentaje son reales. Aparece un botón cuando el resultado aún tiene escapes válidos.

¿Se envía la URL a algún sitio?

No. Todo se calcula en tu navegador y los enlaces se muestran como texto, sin abrirse ni descargarse nunca.