Cómo usar: Codificar / Decodificar URL
- Elige un modo: Codificar componente para un valor de consulta o un segmento de ruta, Codificar URL completa para una dirección completa, o Decodificar.
- Escribe o pega en el cuadro izquierdo; el resultado se actualiza mientras escribes.
- Usa Espacios como + para la codificación de formularios HTML, o Cada línea por separado para procesar una lista.
- Pega cualquier URL en el analizador de URL para ver su host, su ruta y una tabla decodificada de los parámetros de consulta.
¿Qué es la codificación de URL?
La codificación de URL, formalmente percent-encoding (RFC 3986), sustituye los caracteres que no están permitidos o que tienen un significado especial en una URL por un % seguido de dos dígitos hexadecimales. Un espacio pasa a ser %20, & pasa a ser %26, y los caracteres no ASCII primero se convierten en bytes UTF-8 y luego se codifican byte a byte: é → %C3%A9, € → %E2%82%AC. Sin codificar, un valor como Tom & Jerry en una query string se dividiría en dos parámetros.
encodeURIComponent frente a encodeURI
JavaScript ofrece dos funciones, y elegir la incorrecta es un error clásico:
| Carácter | encodeURIComponent | encodeURI |
|---|---|---|
| Espacio | %20 | %20 |
/ ? # & = : @ + , ; $ | Codificado | Se mantiene tal cual |
A–Z a–z 0–9 - _ . ! ~ * ' ( ) | Se mantiene | Se mantiene |
é, emoji, otros no ASCII | Codificado en porcentaje UTF-8 | Codificado en porcentaje UTF-8 |
Usa encodeURIComponent («Codificar componente») para todo lo que insertes dentro de una URL: el valor de un parámetro de consulta, un segmento de ruta o una URL de redirección pasada como parámetro. Usa encodeURI («Codificar URL completa») solo en una URL completa que solo contenga espacios o caracteres no ASCII, porque deja intactos los caracteres estructurales : / ? # &.
¿%20 o +?
En la ruta de una URL, un espacio debe ser %20. En las query strings enviadas por formularios HTML (application/x-www-form-urlencoded), los espacios se escriben como +. La mayoría de servidores aceptan ambas formas en la query string, pero un signo más literal debe enviarse entonces como %2B. El decodificador trata + como espacio por defecto; desmarca la opción si tus datos contienen signos más reales.
Errores de decodificación
Un % debe ir seguido de exactamente dos dígitos hexadecimales, y los caracteres UTF-8 de varios bytes necesitan todos sus bytes. La función decodeURIComponent() normal lanza URIError: malformed URI sequence en la primera secuencia incorrecta; esta herramienta decodifica todo lo que es válido, deja intactas las partes mal formadas e indica cuáles son. Las cadenas codificadas dos veces (%2520) aparecen como %20 tras una pasada: decodifica de nuevo para obtener el espacio.
Anatomía de una URL
https://user@shop.example.com:8443/search?q=shoes#results se compone del esquema (https:), las credenciales opcionales, el host, el puerto, la ruta, la query string y el fragmento. El analizador de arriba usa la API estándar de URL del navegador (WHATWG URL Standard), la misma que usa fetch(). ¿Creando enlaces de campaña? Prueba el UTM Builder. ¿Necesitas codificar datos binarios? Usa Base64.
También se busca como: codificar url, decodificar url, percent encoding, urlencode, urldecode, encodeuricomponent, parser de url, decodificar query string.
Herramientas que combinan con: Codificar / Decodificar URL
- Codificar entidades HTML — Escapa < > & " para mostrar texto de forma segura en HTML, convierte tildes y símbolos en entidades con nombre o numéricas, o decodifica HTML con entidades a texto plano.
- Generador de slugs — Convierte cualquier título en un slug de URL limpio y en minúsculas, con transliteración correcta de acentos, umlauts y cirílico, eliminación opcional de palabras vacías y un modo masivo para listas completas.
- Decodificador JWT — Pega un token web JSON para examinar su encabezado y su carga útil, comprobar cuándo caduca y verificar su firma.
- Traductor de código Morse — Escribe texto para obtener el código Morse, o pega puntos y rayas para descifrarlos; después, escúchalo, mira cómo parpadea y descárgate el audio.
Preguntas frecuentes
¿Cuándo debo usar encodeURIComponent en lugar de encodeURI?
/ ? & # =.¿Por qué a veces un espacio es %20 y otras veces +?
%20 es la codificación de RFC 3986, válida en cualquier parte de una URL. + significa espacio solo en query strings codificadas como formulario (application/x-www-form-urlencoded), que es lo que envían los formularios HTML.¿Qué significa «URIError: malformed URI sequence»?
% que no va seguido de dos dígitos hexadecimales, o una secuencia de bytes UTF-8 incompleta. Este decodificador deja esas partes sin cambios y las enumera, en lugar de fallar.¿Qué caracteres nunca necesitan codificarse?
A–Z a–z, los dígitos 0–9 y - _ . ~. Todo lo demás está reservado para la sintaxis de URL o debe codificarse en porcentaje.