Codificador URL / Decodificador (percent-encoding)
Úsalo para incrustar texto en URLs, query parameters o form data de forma segura. Maneja espacios, caracteres especiales y Unicode correctamente.
Cómo funciona
Qué es URL encoding
Las URLs están restringidas a un set ASCII pequeño. Para incluir cualquier otra cosa — espacios, acentos, caracteres chinos, emoji, símbolos especiales — sustituyes cada byte inseguro con %XX donde XX es su valor hex. Un espacio se vuelve %20, una barra %2F, el kanji 漢 se vuelve %E6%BC%A2 (sus bytes UTF-8 percent-encoded).
Esta calculadora usa encodeURIComponent y decodeURIComponent del navegador. Codifica todo lo que no sea un carácter no reservado (letras, dígitos, -._~), comportamiento correcto para query params y form data.
encodeURI vs encodeURIComponent
JavaScript tiene dos. encodeURI deja los caracteres de estructura (/ ? & # = + etc.) — úsala en una URL completa. encodeURIComponent escapa todos esos — úsala en el valor dentro de un query parameter.
Esta herramienta usa encodeURIComponent, la opción más segura para incrustar texto arbitrario. Si tienes una URL completa con estructura a preservar, codifica solo las partes que lo necesiten.
Trampas comunes
Plus en URLs. Algunos servidores tratan '+' como espacio (legacy de form encoding). encodeURIComponent deja '+' tal cual, pero un servidor podría decodificarlo a espacio. Por seguridad reemplaza '+' por %2B si lo envías como dato.
Doble codificación. Codificar un string ya codificado añade otra capa (% se vuelve %25, así '%20' se vuelve '%2520'). Comprueba siempre si el input ya está codificado antes de re-codificar.
Aumento de tamaño. Multi-byte UTF-8 expande a 3-4 percent-codes cada uno. Una cadena japonesa de 100 chars se vuelve fácilmente URL de 900+.
Preguntas frecuentes
›¿Por qué mi '%20' no decodifica a espacio?
Debería — pero si hay '+' en una URL puede también representar espacio (legacy). Reemplaza + por espacio primero si hace falta.
›¿Maneja emoji?
Sí. Los emoji se codifican como sus bytes UTF-8 (típico 4 bytes / 4 percent-codes por emoji).
›¿URL encoding vs HTML encoding?
URL usa notación %. HTML usa < > etc. Distintos contextos, distintas reglas.
›¿Cuándo codificar?
Codifica cualquier valor en query param URL, segmento de path con input de usuario, o form data. No codifiques una URL ya construida — eso doble-codifica.
›¿Por qué un '%' suelto da error?
Un '%' seguido de algo que no es hex válido es percent-encoding inválido. Codifica '%' a '%25' antes de incluirlo.
›¿El navegador lo hace automático?
Sí — al construir URLs vía URL o URLSearchParams. Esta herramienta expone la misma lógica para uso ad-hoc.
›¿Qué caracteres son 'safe'?
Letras (A-Z, a-z), dígitos (0-9), y: - . _ ~ . Lo demás se percent-encode con encodeURIComponent.
›¿Los datos salen del navegador?
No. Codificación y decodificación corren localmente.
Herramientas relacionadas
Última actualización: