Codificación de URLs explicada: Todo lo que necesitas saber
Aprende cómo funciona la codificación de URLs, por qué importa en desarrollo web, y codifica/decodifica URLs al instante con nuestra herramienta.
Codificación de URLs explicada: Todo lo que necesitas saber
Cada vez que buscas en Google, compartes un enlace con parámetros de consulta o construyes una API REST, la codificación de URLs trabaja entre bastidores. Sin embargo, muchos desarrolladores la tratan como un misterio — o peor, la ignoran hasta que algo se rompe.
Esta guía explica la codificación de URLs (también llamada percent-encoding) desde cero: qué es, por qué existe, cómo funciona y cómo manejarla correctamente en tus proyectos.
¿Qué es la codificación de URLs?
La codificación de URLs es un mecanismo que reemplaza ciertos caracteres con un signo % seguido de dos dígitos hexadecimales. Garantiza que las URLs contengan solo caracteres del conjunto ASCII seguro, haciéndolas válidas y transmisibles por Internet.
Por ejemplo, un espacio se convierte en %20, y una ampersand se convierte en %26.
La especificación formal está definida en la RFC 3986, que establece qué caracteres están permitidos en las URLs y cuáles deben codificarse.
¿Por qué es necesaria la codificación de URLs?
Las URLs solo pueden contener un conjunto limitado de caracteres:
- Letras: A–Z, a–z
- Dígitos: 0–9
- Caracteres no reservados:
-,_,.,~
Todo lo demás — espacios, caracteres acentuados, símbolos como &, =, ?, # — debe codificarse si aparece en una URL. Sin codificación, el servidor no puede distinguir de forma fiable entre los datos reales y los caracteres estructurales de la URL.
Considera esta URL:
https://example.com/search?q=hola mundo&lang=es
El espacio en «hola mundo» crea ambigüedad. ¿Es parte de la consulta, o señala algo más? La codificación de URLs elimina esa ambigüedad:
https://example.com/search?q=hola%20mundo&lang=es
¿Cómo funciona la codificación de URLs?
El proceso de codificación es sencillo:
- Tomar un carácter que no está en el conjunto seguro.
- Convertirlo a su valor en bytes (en UTF-8 para caracteres no-ASCII).
- Representar cada byte como
%seguido de dos dígitos hexadecimales.
Ejemplos
| Carácter | Bytes UTF-8 | Codificado |
|---|---|---|
| Espacio | 0x20 | %20 |
& |
0x26 | %26 |
á |
0xC3 0xA1 | %C3%A1 |
ñ |
0xC3 0xB1 | %C3%B1 |
中 |
0xE4 0xB8 0xAD | %E4%B8%AD |
Observa que los caracteres no-ASCII como á producen múltiples bytes codificados porque UTF-8 usa secuencias multi-byte para caracteres fuera del rango ASCII básico.
Codificación de URLs vs. codificación de formularios
Hay una distinción importante entre la codificación de URLs (percent-encoding según RFC 3986) y la codificación de formularios (application/x-www-form-urlencoded):
| Aspecto | Codificación URL | Codificación formulario |
|---|---|---|
| Espacio → | %20 |
+ |
| Estándar | RFC 3986 | Especificación HTML |
| Usado en | Path, query string | Envío de formularios |
En la codificación de formularios, los espacios se convierten en + en lugar de %20. Esta es una fuente común de errores cuando los desarrolladores confunden los dos formatos.
¿Cuándo necesitas codificar URLs?
Necesitas codificación de URLs en varios escenarios comunes:
- Parámetros de consulta: Los valores con caracteres especiales (
&,=,?, espacios) deben codificarse. - Rutas de URL con espacios o Unicode: Nombres de archivo como
mi archivo.pdfocafé.mdnecesitan codificación. - Construcción dinámica de URLs: Al concatenar entrada de usuario en URLs, siempre codifica la entrada.
- URLs de redirección: Parámetros como
?redirect=https://otra.com/pagina?a=1&b=2necesitan que la URL interna esté codificada.
Cómo codificar URLs en código
JavaScript
// encodeURI: codifica una URL completa (preserva ://, ?, &, =)
encodeURI("https://example.com/hola mundo");
// → "https://example.com/hola%20mundo"
// encodeURIComponent: codifica un valor individual (codifica todo lo especial)
encodeURIComponent("hola mundo&mas");
// → "hola%20mundo%26mas"
Python
from urllib.parse import quote, quote_plus
quote("hola mundo") # → "hola%20mundo"
quote_plus("hola mundo") # → "hola+mundo"
PHP
urlencode("hola mundo"); // → "hola+mundo"
rawurlencode("hola mundo"); // → "hola%20mundo"
Errores comunes en la codificación de URLs
- Doble codificación: Codificar una cadena que ya está codificada produce
%2520en lugar de%20. Siempre verifica si tu framework ya codifica los valores. - Usar la función incorrecta: En JavaScript,
encodeURIyencodeURIComponentse comportan de forma diferente. UsaencodeURIComponentpara valores de parámetros de consulta. - Olvidar decodificar en el servidor: Si codificas en el cliente, el framework del servidor normalmente decodifica automáticamente — pero no siempre. Verifica que tu backend lo maneje.
- Codificar la URL completa: Usar
encodeURIComponenten una URL completa codificará los caracteres://,?y&, rompiendo la estructura de la URL.
Prueba nuestro codificador/decodificador de URLs gratuito
Nuestro Codificador/Decodificador de URLs hace que la codificación de URLs sea instantánea y sin complicaciones. Simplemente pega tu texto o URL, elige codificar o decodificar, y obtén el resultado inmediatamente.
Características:
- Codificación y decodificación instantáneas con un clic
- Soporta caracteres Unicode de cualquier idioma
- Funciona en tu navegador — ningún dato se envía a ningún servidor
- Muestra ambos formatos — percent-encoding y codificación de formularios
Ya sea que estés depurando una URL rota, construyendo query strings o probando endpoints de API, tener una herramienta de codificación de URLs fiable ahorra tiempo y previene errores frustrantes.
Decodificar URLs
La decodificación es el proceso inverso: reemplazar secuencias %XX con sus caracteres originales. La mayoría de los frameworks web manejan esto automáticamente para las solicitudes entrantes, pero podrías necesitar decodificar manualmente cuando:
- Analizas URLs de logs o bases de datos
- Trabajas con solicitudes HTTP sin procesar
- Procesas URLs enviadas por usuarios
Conclusión
La codificación de URLs es una pieza pequeña pero crítica de la infraestructura web. Entender cuándo y cómo codificar (y decodificar) URLs previene errores, mejora la seguridad y garantiza que tus aplicaciones manejen correctamente los caracteres internacionales.
Guarda nuestro Codificador/Decodificador de URLs en favoritos para tareas rápidas de codificación y decodificación — es gratis, rápido y funciona completamente en tu navegador.
Herramientas relacionadas
Última actualización el 2026-09-27