Por qué las URL necesitan codificación
Una URL solo puede contener un conjunto limitado de caracteres ASCII. Todo lo demás (espacios, diéresis, emoji y caracteres con significado especial como &, = y ?) debe codificarse en porcentaje: cada byte de la representación UTF-8 del carácter pasa a ser % seguido de dos dígitos hexadecimales. Sáltate este paso y una consulta de búsqueda como coffee & cream rompe en silencio tu cadena de consulta: el & inicia un nuevo parámetro y la mitad de tu valor se esfuma.
Esta herramienta usa encodeURIComponent, la variante estricta pensada para partes individuales de una URL. coffee & cream se convierte en coffee%20%26%20cream, y decodificar lo revierte exactamente.
Caracteres habituales y sus codificaciones
| Carácter | Codificado | Por qué importa en una URL |
|---|---|---|
| espacio | %20 | Los espacios terminan la URL en muchos contextos |
& | %26 | Separa parámetros de consulta |
= | %3D | Separa el nombre y el valor del parámetro |
? | %3F | Inicia la cadena de consulta |
# | %23 | Inicia el fragmento; todo lo posterior se descarta de las peticiones |
/ | %2F | Separador de segmentos de ruta |
+ | %2B | Se decodifica como espacio en datos de formulario si se deja en crudo |
ü | %C3%BC | No ASCII: dos bytes en UTF-8, dos secuencias % |
encodeURI frente a encodeURIComponent
JavaScript trae dos codificadores, y confundirlos es un error clásico. encodeURI es para una URL completa: deja intactos :, /, ?, # y & para que la estructura de la URL sobreviva. encodeURIComponent, que es lo que usa esta herramienta, es para un valor único dentro de una URL y codifica todos esos. Regla práctica: ¿construyes un parámetro de consulta? Siempre encodeURIComponent. ¿Codificas una URL entera que alguien escribió? encodeURI. Si codificas una URL completa con la variante de componente, el https%3A%2F%2F del principio te dice qué salió mal.
Trampas que conviene conocer
- Doble codificación: codificar dos veces convierte
%20en%2520. Si ves secuencias%25por ahí, algo codificó un texto ya codificado. - Decodificar entradas inválidas: un
%suelto que no va seguido de dos dígitos hexadecimales (como100% legit) no se puede decodificar; la herramienta lo informa en lugar de adivinar. - + no siempre es un espacio: solo en los datos de formulario
application/x-www-form-urlencoded.decodeURIComponentdeja correctamente+como+.
Todo corre por completo en tu navegador: ninguna URL que pegues se envía nunca a un servidor. Herramientas relacionadas: escapa texto para marcado con el codificador de HTML, o construye rutas de URL limpias con el generador de slugs.