Herramientas relacionadas
¿Para qué sirve un codificador y decodificador de URL?
Los navegadores, servidores y cachés tratan ciertos caracteres como estructura: espacios, ampersands, almohadillas y texto no ASCII necesitan escape cuando son datos y no sintaxis. Una herramienta dedicada le muestra la cadena exacta que enviará un cliente HTTP.
Ventajas de una codificación URL correcta
- Transmisión segura: El contenido reservado del usuario deja de romper analizadores que dividen rutas, consultas y fragmentos.
- Soporte Unicode: Los bytes UTF‑8 pueden representarse como secuencias % para que el texto internacional sobreviva transportes solo ASCII.
- APIs previsibles: Alinear con RFC 3986 reduce desajustes entre front-end, apps móviles y frameworks de backend.
- Menos errores 400: Parámetros bien codificados tienen menos probabilidades de rechazo por gateways estrictos o proxies inversos.
- Depuración más fácil: Compare su cadena manual con lo que produciría encodeURIComponent antes de publicar un hotfix.
Cómo funciona la codificación de URL
El percent-encoding reescribe cada byte que no puede aparecer literalmente en un segmento de URL como %HH, donde HH es hexadecimal. Qué caracteres permanecen literales depende de proteger una URL entera o un componente individual.
Modos de esta herramienta
- Modo componente: Equivale a encodeURIComponent / decodeURIComponent: ideal para claves, valores, segmentos de ruta o texto que irá en una query.
- Modo URL completa: Equivale a encodeURI / decodeURI: pensado para cadenas que aún contienen esquema, host, barras y signos de consulta tras la transformación.
- Transformación en vivo: Cada edición pasa por el par elegido para ver al instante entradas mal formadas o errores de doble codificación.
Datos que conviene recordar
Detalles como el signo + en envíos de formularios frente al percent-encoding real suelen confundir equipos cuando los frameworks no coinciden.
Referencia rápida
- El espacio suele ser %20 en la query; los formularios HTML pueden usar + en cuerpos application/x-www-form-urlencoded.
- Solo caracteres no reservados (letras, dígitos, -._~) pueden quedar sin codificar en modo componente estricto.
- La doble codificación (codificar una cadena ya codificada) alarga la URL y puede confundir servidores.
- decodeURIComponent falla con % seguido de hex incompleto; corrija el origen antes de decodificar.
- Los dominios internacionalizados usan Punycode en el DNS; la codificación URL cubre ruta y consulta, no la conversión ACE del nombre de host.
Buenas prácticas
Codifique en el límite donde el texto no confiable pasa a formar parte de una URL y decodifique una vez cuando lo trate de nuevo como datos.
- Codifique cada valor de consulta por separado en lugar de codificar dos veces la URL entera.
- Registre la entrada cruda por separado de la cadena codificada al depurar analíticas o redirecciones.
- Prefiera enlaces HTTPS al compartir URLs codificados con tokens sensibles.
- Valide la salida decodificada antes de inyectarla en HTML para evitar XSS por enlaces maliciosos.
- Pruebe ambos modos si el producto admite enlaces profundos desde plantillas de correo o SMS.
Casos de uso ideales
- Desarrollo web: Filtros de búsqueda, parámetros UTM y URIs de redirección OAuth con confianza.
- Integración con APIs: Comportamiento acorde cuando la documentación cita percent-encoding RFC 3986.
- QA y soporte: Reproduzca URLs de clientes sin adivinar qué caracteres se escaparon.
- Documentación: Muestre ejemplos exactos antes/después para integraciones de socios.
- Scripts de migración: Compare reglas de escape heredadas con funciones modernas del navegador.
Preguntas frecuentes
¿Cuál es la diferencia entre codificación de componente y de URL completa?
La codificación de componente (encodeURIComponent en JavaScript) aplica percent-encoding a casi todos los caracteres reservados, que es lo adecuado para claves o valores de consulta individuales. La codificación de URL completa (encodeURI) deja delimitadores como : / ? & = para que la cadena siga siendo navegable.
¿Cuándo usar decodeURIComponent frente a decodeURI?
Debe coincidir con el codificador: decodeURIComponent para un solo componente, decodeURI para una cadena que aún debe parecer una URL completa con barras y separadores de consulta.
¿Se envían mis datos a sus servidores?
No. La codificación y decodificación se ejecutan por completo en su navegador; no hay subida de datos.
¿Qué significa «codificación porcentual»?
Los bytes que no pueden aparecer literales en una URL se escriben como % seguido de dos dígitos hexadecimales (por ejemplo, un espacio se convierte en %20). Es lo que RFC 3986 llama percent-encoding.
¿Por qué la decodificación muestra un error?
Secuencias % mal formadas (número impar de hexadecimales, UTF-8 no válido tras decodificar o modos mezclados) pueden fallar. Revise la cadena o pruebe el otro tipo si codificó una URL completa como componente.