Codificador y Decodificador URL — Herramienta Online Gratuita
Codifique y decodifique URLs al instante. Maneje caracteres especiales, parámetros de consulta y Unicode con encodeURIComponent, encodeURI o codificación de cadena de consulta. Analice URLs completas en sus componentes — 100% del lado del cliente, nada sale de su navegador.
Codificar / Decodificar
Prueba rápida — haga clic en un carácter para insertarlo:
Salida
Analizador de URL
¿Qué es la Codificación URL?
La codificación URL, formalmente conocida como percent-encoding, es una forma de representar caracteres que no están permitidos o tienen significado especial en un Localizador Uniforme de Recursos (URL). El mecanismo reemplaza caracteres inseguros o reservados con un signo de porcentaje (%) seguido de dos dígitos hexadecimales en mayúsculas que representan el valor del byte UTF-8 del carácter. Por ejemplo, un carácter de espacio (ASCII 32 / 0x20) se convierte en %20, y un ampersand (&) se convierte en %26.
Las URLs están restringidas a un subconjunto de caracteres ASCII imprimibles. Cualquier carácter fuera de ese conjunto seguro — incluyendo caracteres Unicode como emoji y escrituras no latinas, caracteres con significado especial en la sintaxis URL (como ?, #, / y =), y caracteres de control invisibles — debe ser codificado antes de ser incrustado en una URL. No codificar estos caracteres puede resultar en URLs malformadas, enlaces rotos, vulnerabilidades de seguridad o errores de análisis del lado del servidor.
El percent-encoding está definido en RFC 3986 (sintaxis URI) y se usa en todas partes donde se realizan solicitudes HTTP: cadenas de consulta, envíos de formularios, segmentos de ruta y headers HTTP que llevan valores URL.
encodeURI vs encodeURIComponent
JavaScript proporciona dos funciones incorporadas para codificación URL, y elegir la correcta importa para la corrección:
| Función | Propósito | Caracteres NO codificados |
|---|---|---|
| encodeURI() | Codificar una URL completa, estructuralmente válida | A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) # |
| encodeURIComponent() | Codificar un componente individual de URL (ej. un valor de consulta) | A-Z a-z 0-9 - _ . ! ~ * ' ( ) |
| decodeURI() | Inverso de encodeURI | No decodifica caracteres que encodeURI no codificaría |
| decodeURIComponent() | Inverso de encodeURIComponent | Decodifica todas las secuencias percent-encoded |
La regla general: use encodeURIComponent para valores que insertará en una URL (nombres y valores de parámetros de consulta, segmentos de ruta que contienen datos del usuario). Use encodeURI solo cuando ya tenga una URL completa y estructuralmente correcta y simplemente quiera asegurarse de que sea segura para transmisión (por ejemplo, antes de pasarla a fetch() o una etiqueta de ancla). Usar encodeURIComponent en una URL completa la romperá al codificar las barras y dos puntos en el protocolo y host.
Caracteres Comunes que Necesitan Codificación URL
| Carácter | Forma Codificada | Por qué necesita codificación |
|---|---|---|
| espacio | %20 (o + en cadenas de consulta) | Los espacios no están permitidos en ninguna parte de una URL |
| & | %26 | Delimitador entre parámetros de consulta; debe codificarse en valores |
| = | %3D | Separa nombre de parámetro del valor; debe codificarse en valores |
| ? | %3F | Introduce la cadena de consulta; debe codificarse en segmentos de ruta y valores |
| # | %23 | Introduce un fragmento; todo después de # no se envía al servidor |
| / | %2F | Separador de ruta; codifique cuando / es parte de un valor, no un delimitador de ruta |
| + | %2B | Significa "espacio" en cadenas de consulta con codificación de formulario; codifique el + literal con %2B |
| @ | %40 | Usado en autoridad (userinfo@host); codifique en valores de ruta/consulta |
| % | %25 | El propio carácter de escape; un % literal debe codificarse como %25 |
| " | %22 | Carácter inseguro que puede romper el entrecomillado de atributos HTML |
| 🚀 (U+1F680) | %F0%9F%9A%80 | El Unicode no-ASCII se codifica en UTF-8 y luego se aplica percent-encoding |
| 中 (U+4E2D) | %E4%B8%AD | Los caracteres CJK se codifican en tres bytes UTF-8 cada uno |
Preguntas Frecuentes
¿Qué es la codificación URL?
La codificación URL (percent-encoding) convierte caracteres especiales y no-ASCII en una URL a un formato seguro reemplazando cada carácter con un % seguido de dos dígitos hexadecimales que representan su valor de byte UTF-8. Esto asegura que las URLs contengan solo caracteres del subconjunto ASCII permitido definido en RFC 3986, previniendo errores de análisis y ambigüedad.
¿Cuál es la diferencia entre encodeURI y encodeURIComponent?
encodeURI es para URLs completas — deja intactos los caracteres estructurales como ://, /, ?, & y = porque son parte de la estructura URL. encodeURIComponent es para valores individuales (como valores de parámetros de consulta) — codifica esos caracteres estructurales también, para que el valor no pueda romper la estructura URL en la que está incrustado. Siempre use encodeURIComponent cuando inserte datos proporcionados por el usuario en una URL.
¿Cuál es la diferencia entre %20 y + para espacios en URLs?
%20 es el percent-encoding universalmente correcto de un espacio y es válido en cualquier parte de una URL. El signo + representa un espacio solo dentro de la cadena de consulta y solo cuando el tipo de contenido es application/x-www-form-urlencoded (el valor predeterminado para envíos de formularios HTML). En una ruta URL, + es un signo de más literal, no un espacio. Para máxima compatibilidad y claridad, prefiera %20 sobre + cuando codifique espacios en URLs construidas programáticamente.
¿Cómo se codifican los caracteres Unicode en URLs?
Los caracteres Unicode no se codifican directamente con percent-encoding desde su punto de código Unicode. En cambio, el carácter primero se convierte a su secuencia de bytes UTF-8, y luego cada byte se codifica individualmente con percent-encoding. Por ejemplo, el emoji 🚀 (U+1F680) tiene la representación UTF-8 F0 9F 9A 80, que se codifica como %F0%9F%9A%80. La función encodeURIComponent de JavaScript maneja esto automáticamente, haciéndola la opción más segura para codificar cualquier entrada del usuario que pueda contener caracteres no-ASCII.
Herramientas Relacionadas para Desarrolladores
- Codificador y Decodificador Base64 — codifique y decodifique cadenas Base64 para data URIs y payloads de API
- Formateador y Validador JSON — formatee y valide JSON con resaltado de sintaxis
- Depurador de Errores CORS — diagnostique errores cross-origin y obtenga código de corrección para Express, Nginx, Apache
- Referencia de Códigos de Estado HTTP — consulte cada código de estado HTTP con explicaciones y ejemplos