tigtools

Codificador y decodificador de URL

Codifica texto para usarlo en una URL o convierte secuencias de escape como %20 en texto legible. Elige Componente para un único valor o URL completa para una dirección completa.

Se ejecuta en tu navegador Sin registro

Dirección
¿Qué quieres codificar?

Componente (encodeURIComponent) codifica todo excepto las letras, los dígitos y - _ . ! ~ * ' ( ). Úsalo para un valor de consulta, un campo de formulario o un segmento de ruta.

Cómo usarla

  1. Elige Codificar o Decodificar.
  2. Elige Componente para un único valor (por ejemplo, un parámetro de consulta) o URL completa para una dirección completa.
  3. Escribe o pega el texto. El resultado aparece al instante a la derecha (o debajo en teléfonos).
  4. Copia el resultado o usa “Usar el resultado como entrada” para invertir la operación y comprobar el proceso de ida y vuelta.

Cómo funciona

Las URL solo pueden contener un conjunto limitado de caracteres ASCII. Los demás, incluidos los espacios, las letras acentuadas y los emojis, se escriben como secuencias de escape porcentual: el carácter se convierte en bytes UTF-8 y cada byte se representa con % seguido de dos dígitos hexadecimales. Un espacio se convierte en %20, é en %C3%A9 y € en %E2%82%AC.

El modo Componente usa encodeURIComponent y decodeURIComponent de JavaScript. Escapa todos los caracteres que tienen un significado especial en una URL, incluidos / ? # & = + : y @, de modo que el resultado se puede incluir de forma segura en un valor de consulta o en un único segmento de ruta. Solo deja sin cambios A–Z, a–z, 0–9 y - _ . ! ~ * ' ( ).

El modo URL completa usa encodeURI y decodeURI. Da por hecho que la entrada es una URL completa y deja intactos los caracteres reservados ; , / ? : @ & = + $ # para que la dirección siga funcionando. Al decodificar, decodeURI también deja intactas las secuencias de escape de esos caracteres reservados: %2F permanece como %2F, porque convertirlo en / cambiaría el significado de la URL.

La opción Datos de formulario sigue el formato application/x-www-form-urlencoded, que usan los navegadores al enviar formularios HTML: los espacios se escriben como + en lugar de %20. Al decodificar con esta opción, cada + se convierte en un espacio; para representar un signo más literal, se debe escribir %2B.

La entrada no válida nunca se descarta. Si un % no va seguido de dos dígitos hexadecimales o una secuencia de escapes no forma UTF-8 válido, la herramienta indica dónde está el problema y conserva el texto para que puedas corregirlo.

Ejemplos

Incluir un valor en una cadena de consulta

Para buscar “Rock & Roll” en https://example.com/search?q=…, codifica solo el valor en modo Componente: Rock%20%26%20Roll. Sin codificarlo, el & pondría fin al parámetro q y empezaría uno nuevo llamado “ Roll”.

Corregir una URL con espacios y acentos

En el modo URL completa, https://example.com/menu/crème brûlée.html se convierte en https://example.com/menu/cr%C3%A8me%20br%C3%BBl%C3%A9e.html. Las barras y los dos puntos permanecen igual, por lo que el enlace sigue funcionando.

Leer datos de formulario registrados

Un registro del servidor muestra name=Jane+Doe&city=S%C3%A3o+Paulo. Decodifícalo en modo Componente con la opción “Tratar + como espacio” activada para leer name=Jane Doe&city=São Paulo.

Preguntas frecuentes

¿Cuál es la diferencia entre encodeURI y encodeURIComponent?

encodeURIComponent escapa los caracteres que separan las partes de una URL (/ ? # & = + : @ y otros), por lo que está pensado para una sola parte de una URL. encodeURI conserva esos caracteres, por lo que está pensado para una URL completa. Usar encodeURI en un valor de consulta es un error común: los caracteres & o = del valor no se escaparían y dañarían la cadena de consulta.

¿Un espacio debe representarse como %20 o +?

En la ruta de una URL, un espacio siempre se representa como %20. En una cadena de consulta se usan ambas formas: %20 es válido en cualquier contexto, mientras que + representa un espacio solo en datos codificados como formulario (application/x-www-form-urlencoded), que es como los formularios HTML y muchos frameworks de servidor interpretan las cadenas de consulta. Si no tienes claro cuál usar, elige %20.

¿Por qué aparece un error al decodificar?

La decodificación falla cuando un signo % no va seguido de dos dígitos hexadecimales (por ejemplo, “50% de descuento”) o cuando los bytes escapados no son UTF-8 válido. Esto suele indicar que el texto se codificó con un juego de caracteres antiguo, como Latin-1 (é como %E9 en lugar de %C3%A9). El mensaje de error indica la posición del problema.

¿Por qué %2F no se convirtió en una barra en el modo URL completa?

decodeURI conserva intencionadamente las secuencias de escape de caracteres reservados como / ? # & y =, porque decodificarlos podría cambiar la forma en que se divide la URL en partes. Usa el modo Componente para decodificar todas las secuencias de escape.

¿Qué caracteres nunca se codifican?

Ambos modos dejan sin cambios A–Z, a–z, 0–9 y - _ . ! ~ * ' ( ). Además, el modo URL completa deja sin cambios ; , / ? : @ & = + $ y #.

Privacidad

La codificación y decodificación se realizan íntegramente en tu navegador con las funciones integradas de JavaScript. El texto y las URL no se suben, almacenan ni incluyen en las analíticas.