¿Por qué usar un codificador URL?
El percent-encoding (o codificación URL) es indispensable cuando manipulas parámetros en una URL. Los caracteres especiales como &, =, ? o los espacios deben codificarse para no romper la estructura de la URL.
Sin una codificación correcta, un parámetro que contenga precio=10&20 se interpretaría como dos parámetros distintos (precio=10 y 20). El navegador no puede adivinar tu intención: la codificación elimina la ambigüedad.
Tres situaciones en las que la codificación URL es indispensable:
- Parámetros de query string → Un
&o=en un valor corta la cadena en el lugar incorrecto - Parámetros UTM → Espacios o caracteres acentuados en
utm_campaignrompen el tracking de analytics - Redirecciones y callbacks → Las URLs anidadas (OAuth, SSO, emails de marketing) deben codificarse íntegramente
Cómo usar el codificador / decodificador URL en 3 pasos
Paso 1: Pegar el contenido
Pega en el campo de entrada:
- Texto sin formato si quieres codificar (ej.:
precio=10€ & envío gratis) - Una cadena codificada si quieres decodificar (ej.:
precio%3D10%E2%82%AC+%26+env%C3%ADo+gratis)
Paso 2: Seleccionar la operación
Haz clic en Codificar URL para transformar texto en percent-encoding, o en Decodificar URL para recuperar el texto original a partir de una cadena codificada.
Paso 3: Copiar el resultado
El resultado aparece instantáneamente. Haz clic en el botón de copiar para obtener la cadena convertida, lista para insertarla en tu código, URL o configuración.
¿Qué es el percent-encoding?
El percent-encoding es el mecanismo definido por la RFC 3986 para representar caracteres especiales en una URI. Cada octeto no permitido se reemplaza por % seguido de dos dígitos hexadecimales que representan su valor UTF-8.
Ejemplo concreto:
Texto original: Café & Thé = 15€
Codificado: Caf%C3%A9+%26+Th%C3%A9+%3D+15%E2%82%AC
La é (U+00E9) ocupa dos octetos en UTF-8 (C3 A9), de ahí %C3%A9. El símbolo € (U+20AC) ocupa tres octetos (E2 82 AC), de ahí %E2%82%AC.
Caracteres no reservados (nunca se codifican)
Estos caracteres pasan tal cual en una URL:
A-Z a-z 0-9 - _ . ~
Caracteres reservados (se codifican en los valores)
| Carácter | Rol en la URL | Codificado |
|---|---|---|
? | Inicio de los parámetros | %3F |
& | Separador de parámetros | %26 |
= | Asignación clave/valor | %3D |
# | Fragmento (ancla) | %23 |
/ | Separador de ruta | %2F |
+ | Espacio (query string) | %2B |
@ | Identificador de usuario | %40 |
Tabla de codificación de caracteres comunes
| Carácter | Descripción | Codificado (query) | Codificado (path) |
|---|---|---|---|
| espacio | Espacio en blanco | + | %20 |
& | Ampersand | %26 | %26 |
= | Signo igual | %3D | %3D |
? | Signo de interrogación | %3F | %3F |
# | Almohadilla | %23 | %23 |
é | E con acento agudo | %C3%A9 | %C3%A9 |
ñ | N con tilde | %C3%B1 | %C3%B1 |
€ | Símbolo del euro | %E2%82%AC | %E2%82%AC |
日 | Ideograma CJK | %E6%97%A5 | %E6%97%A5 |
Nota: La diferencia entre query y path afecta únicamente al espacio. En query string (application/x-www-form-urlencoded), el espacio se convierte en +. En una ruta de URL, se convierte en %20.
Casos de uso reales
Caso 1: Parámetros UTM con caracteres especiales
Problema: Estás creando un enlace de tracking para una campaña llamada "Rebajas verano 2025 - 50%".
Sin codificación:
https://captaindns.com?utm_campaign=Rebajas verano 2025 - 50%
Los espacios, el guion y el % rompen el enlace. Google Analytics no captura la campaña.
Con codificación:
https://captaindns.com?utm_campaign=Rebajas+verano+2025++-+50%25
El tracking funciona correctamente, cada carácter especial se preserva.
Caso 2: URL de callback OAuth
Problema: Estás configurando un flujo OAuth y necesitas pasar una URL de retorno como parámetro.
Sin codificación:
https://auth.captaindns.com/authorize?redirect_uri=https://captaindns.com/callback?token=abc&scope=read
El servidor interpreta scope=read como un parámetro de /authorize, no de /callback.
Con codificación del redirect_uri:
https://auth.captaindns.com/authorize?redirect_uri=https%3A%2F%2Fcaptaindns.com%2Fcallback%3Ftoken%3Dabc&scope=read
La URL anidada queda correctamente aislada. El flujo OAuth funciona.
Caso 3: Depuración de un enlace de email roto
Problema: Un cliente reporta que un enlace de tu newsletter no funciona. El enlace en bruto en el email se ve así:
https://captaindns.com/offre?nom=Caf%C3%A9+%26+Th%C3%A9&code=PROMO%2D20
Acción: Pega la parte después del ? en el decodificador para leer los parámetros:
nom=Café & Thécode=PROMO-20
Identificas inmediatamente si los valores son correctos o si una doble codificación corrompió el enlace.
❓ FAQ - Preguntas frecuentes
P: ¿Cuál es la diferencia entre la codificación URL y Base64?
R: La codificación URL (percent-encoding) reemplaza los caracteres especiales por %XX para hacerlos compatibles con las URLs. Base64 codifica datos binarios (imágenes, archivos) en caracteres ASCII. Ambos no son intercambiables: usa la codificación URL para los parámetros de URL, Base64 para transmitir datos binarios en texto.
P: ¿Por qué los espacios se convierten en +?
R: Es una convención del formato application/x-www-form-urlencoded, usado por los formularios HTML y las query strings. En las rutas de URL (antes del ?), el espacio se codifica como %20. Ambas representaciones son válidas en su contexto respectivo.
P: ¿Qué caracteres no se codifican?
R: Los 66 caracteres no reservados definidos por la RFC 3986 nunca se modifican: letras A-Z, a-z, dígitos 0-9, y cuatro símbolos: -, _, ., ~. Todos los demás caracteres se codifican cuando aparecen en un valor de parámetro.
P: ¿Puedo codificar una URL completa?
R: No, codifica únicamente los valores de los parámetros. Los separadores estructurales (://, /, ?, &, =) deben permanecer tal cual para que la URL siga siendo funcional. Por ejemplo, codifica el valor Café & Thé pero no el ? ni el & que estructuran la URL.
P: ¿Qué pasa con una doble codificación?
R: Una doble codificación transforma %26 en %2526 (el % se recodifica). El servidor recibe entonces la cadena literal %26 en lugar de &. Es una trampa habitual en las redirecciones anidadas. Si sospechas de una doble codificación, decodifica dos veces y compara los resultados.
P: ¿Qué pasa con una codificación inválida?
R: Si intentas decodificar una secuencia inválida (por ejemplo %GG o un % aislado), la herramienta muestra un mensaje de error explicativo en lugar de un resultado corrupto. Corrige la secuencia de origen antes de volver a intentarlo.
Herramientas complementarias
| Herramienta | Utilidad |
|---|---|
| Codificador Base64 | Codifica datos binarios en ASCII para APIs y webhooks |
| Generador de slug | Convierte un título en una URL limpia, sin caracteres especiales |
| Contador de palabras | Verifica la longitud de tus parámetros antes de codificarlos |
| Convertidor de mayúsculas/minúsculas | Convierte texto a camelCase, snake_case o kebab-case para tus variables |
| Generador de contraseñas | Crea contraseñas aleatorias para integrar en tus URLs seguras |
| Generador de hash | Calcula MD5, SHA-256 o SHA-512 para verificar la integridad de tus datos |
Recursos útiles
- RFC 3986 – Uniform Resource Identifier (URI): Generic Syntax (especificación oficial del percent-encoding)
- RFC 3987 – Internationalized Resource Identifiers (IRIs) (extensión de la RFC 3986 para caracteres Unicode)
- MDN – encodeURIComponent() (referencia JavaScript de la codificación URL)
- WHATWG URL Standard (especificación viva del parsing y la serialización de URLs)