Acerca de Codificador y decodificador de URL
Las URL solo pueden contener un conjunto limitado de caracteres ASCII. Los espacios, las letras con tilde, los emojis y los caracteres que tienen un significado especial en las URL (como &, =, ? y #) deben escribirse como bytes con codificación porcentual: por ejemplo, un espacio se convierte en %20 y "é" en %C3%A9. Esta herramienta convierte texto a ese formato y viceversa.
Usa la codificación UTF-8 que define el estándar URL, con las mismas reglas que las funciones encodeURIComponent y encodeURI de JavaScript. Además, un inspector de URL integrado divide una dirección completa en protocolo, host, ruta, fragmento y una lista decodificada de parámetros de consulta.
Cómo se usa
- Elige “Codificar” o “Decodificar”.
- Elige el modo: “Componente” para un único valor de consulta o un segmento de ruta, “URL completa” para mantener la estructura de una dirección completa, o “Formulario” para datos application/x-www-form-urlencoded, en los que los espacios se escriben como +.
- Escribe o pega tu texto en el cuadro de entrada. El resultado se actualiza mientras escribes.
- Usa “Copiar resultado” para llevar el resultado al portapapeles, o “Intercambiar” para pasar el resultado a la entrada e invertir la dirección.
- Pega una URL completa para ver sus partes y sus parámetros de consulta decodificados en el “Inspector de URL”, debajo del resultado.
Funciones
- Tres modos de codificación: Componente (encodeURIComponent), URL completa (encodeURI) y codificación de formularios HTML con + para los espacios.
- Compatibilidad total con Unicode: Los alfabetos no latinos y los emojis se codifican como bytes UTF-8, exactamente como lo hacen los navegadores.
- Mensajes de error claros: Cuando la decodificación falla, la herramienta te dice dónde está la secuencia % mal formada o si los bytes no son UTF-8 válido.
- Inspector de URL: Muestra el host, el puerto, la ruta, el fragmento y cada parámetro de consulta ya decodificado, incluidas las claves repetidas.
- Privado: Todo ocurre en tu navegador, así que las URL que contienen tokens o datos personales no se envían a ningún sitio.
Ejemplos
Codificar una consulta de búsqueda
Para pasar "coffee & cake" como valor en ?q=…, codifícalo en el modo “Componente”: el resultado es coffee%20%26%20cake. Sin codificar, el & empezaría un parámetro nuevo.
Leer un enlace de seguimiento
Pega un enlace largo como https://example.com/?redirect=https%3A%2F%2Fshop.example%2Fcart%3Fid%3D7 para ver que el parámetro redirect se decodifica como https://shop.example/cart?id=7.
Decodificar datos de un formulario
Los datos que envía un formulario HTML tienen este aspecto: name=Jane+Doe&city=S%C3%A3o+Paulo. Decodifícalos en el modo “Formulario” para obtener "name=Jane Doe&city=São Paulo".
Limitaciones y notas
- El modo “URL completa” no codifica los caracteres reservados como / ? # & =, así que no sirve para codificar el valor de un solo parámetro: para eso, usa el modo “Componente”.
- Al decodificar "%2F" en el modo “URL completa”, se mantiene como %2F, porque decodeURI deja escapados a propósito los caracteres reservados.
- No se pueden decodificar datos con codificación porcentual en codificaciones antiguas (por ejemplo, ISO-8859-1 o Shift_JIS), porque la herramienta espera bytes UTF-8.
- El inspector de URL solo funciona con URL absolutas que empiezan por un esquema como https:.
- Los nombres de dominio internacionalizados se muestran en la forma punycode que devuelve el navegador (por ejemplo, xn--…).
Preguntas frecuentes
¿Qué diferencia hay entre encodeURI y encodeURIComponent?
encodeURIComponent escapa todos los caracteres que tienen un significado especial en una URL, así que es seguro para un valor. encodeURI deja intactos caracteres como : / ? # & = para que una URL completa siga funcionando. Los modos “Componente” y “URL completa” corresponden a estas dos funciones.
¿Un espacio debe ser %20 o +?
En la práctica aparecen los dos. %20 es correcto en cualquier parte de una URL. El signo + solo significa un espacio en la cadena de consulta de los envíos de formularios HTML (application/x-www-form-urlencoded). Usa el modo “Formulario” cuando trabajes con ese formato.
¿Por qué aparece que los bytes no forman texto UTF-8 válido?
Las secuencias % tienen una sintaxis correcta, pero los bytes que describen no forman texto UTF-8 válido: por ejemplo, %C3 sin un byte de continuación detrás. Puede que los datos se codificaran con otro juego de caracteres o que se cortaran.
¿Mi URL se envía a un servidor?
No. La codificación, la decodificación y el análisis los hace JavaScript en esta página. Incluso puedes desconectarte de internet después de cargar la página, y la herramienta sigue funcionando.