Codificador y Decodificador URL con Analizador Integrado
Pega una URL para decodificarla o codificarla al instante. Analizador integrado descompone protocolo, host, ruta y parámetros en campos editables. Modos encodeURI y encodeURIComponent. 100% navegador — sin envío de datos.
¿Qué es la codificación URL (codificación porcentual)?
La codificación URL, formalmente conocida como codificación porcentual, es un mecanismo definido en RFC 3986 para representar caracteres en un Identificador Uniforme de Recurso (URI) que no están permitidos o tienen un significado especial. Convierte cada byte inseguro en un signo de porcentaje (%) seguido de dos dígitos hexadecimales — por ejemplo, un espacio se convierte en %20, un ampersand en %26 y el carácter chino 中 se convierte en %E4%B8%AD (sus tres bytes UTF-8, cada uno codificado con porcentaje).
Las URLs solo pueden contener un conjunto limitado de caracteres del conjunto ASCII. Las letras, dígitos y un puñado de símbolos (- _ . ~) se consideran 'no reservados' y pueden aparecer tal cual. Todos los demás caracteres — incluyendo espacios, puntuación y todo el rango de Unicode — deben codificarse con porcentaje para transmitirse de forma segura en una URL. Los caracteres reservados como ?, &, = y # sirven como delimitadores estructurales en la sintaxis URL, por lo que también deben codificarse cuando se usan como datos literales en lugar de delimitadores.
La codificación porcentual es esencial en toda la web: los navegadores codifican los envíos de formularios, las APIs requieren parámetros de consulta codificados, los flujos OAuth dependen de URIs de redirección correctamente codificados y los nombres de dominio internacionalizados dependen de la codificación para caracteres no ASCII. Una codificación incorrecta conduce a enlaces rotos, vulnerabilidades de seguridad (como ataques de redirección abierta) y corrupción de datos.
Esta herramienta proporciona los modos encodeURI y encodeURIComponent, un analizador de estructura URL integrado, conversión en tiempo real y detección de doble codificación — todo ejecutándose de forma privada en tu navegador.
La codificación URL se usa frecuentemente junto con otras herramientas de desarrollo web. Podrías necesitar codificar una URL en Base64 para incrustarla en un token JWT o payload de API, o formatear datos JSON que contienen cadenas URL para inspeccionar su estructura.
// Encode a query parameter value
const param = encodeURIComponent('hello world & goodbye');
console.log(param); // → 'hello%20world%20%26%20goodbye'
// Encode a full URL (preserves structure)
const url = encodeURI('https://example.com/path name?q=hello world');
console.log(url); // → 'https://example.com/path%20name?q=hello%20world'
// Decode a percent-encoded string
const decoded = decodeURIComponent('hello%20world%20%26%20goodbye');
console.log(decoded); // → 'hello world & goodbye'
// Build a URL with encoded parameters
const base = 'https://api.example.com/search';
const query = `?q=${encodeURIComponent('你好')}&lang=zh`;
console.log(base + query); // → 'https://api.example.com/search?q=%E4%BD%A0%E5%A5%BD&lang=zh' Características principales
Modo de codificación dual
Alterna entre encodeURI (preserva la estructura URL) y encodeURIComponent (codifica todo para valores de parámetros) según tu caso de uso exacto.
Analizador de URL integrado
Descompone automáticamente cualquier URL en protocolo, host, puerto, ruta, parámetros de consulta y fragmento — cada campo es editable y puede reconstruirse en una nueva URL.
Conversión en tiempo real
Codifica y decodifica al instante mientras escribes — sin botones que pulsar, los resultados aparecen inmediatamente en la otra área con cada pulsación de tecla.
100% en el navegador
Todo el procesamiento ocurre localmente en tu navegador usando APIs nativas de JavaScript. Tus datos nunca abandonan tu dispositivo — sin cargas al servidor, sin seguimiento.
Soporte completo de UTF-8
Maneja correctamente chino, japonés, coreano, árabe, emojis y cualquier texto Unicode mediante codificación y decodificación UTF-8 apropiada.
Detección de doble codificación
Detecta y advierte automáticamente sobre problemas de doble codificación como %2520 (un %20 codificado con porcentaje), ayudándote a evitar uno de los errores más comunes de codificación URL.
Ejemplos
Decodificar URL ilegible
https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world%26lang%3Den
https://example.com/search?q=hello world&lang=en
Una URL completamente codificada con porcentaje se decodifica a su forma legible, revelando los parámetros y la estructura originales
Caracteres chinos
https://example.com/search?q=你好世界
https://example.com/search?q=%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C
Los caracteres chinos se convierten a secuencias de bytes UTF-8 y se codifican con porcentaje
Parámetros de consulta
https://example.com/api?name=John Doe&role=admin&lang=en&sort=date desc
https://example.com/api?name=John%20Doe&role=admin&lang=en&sort=date%20desc
Los espacios y caracteres especiales en los valores de los parámetros de consulta se codifican con porcentaje preservando la estructura de la URL
URL completa
https://user:pass@example.com:8080/path/to/page?key=value&arr[]=1#section-2
https://user:pass@example.com:8080/path/to/page?key=value&arr%5B%5D=1#section-2
Una URL completa con credenciales, puerto, ruta, parámetros de consulta con corchetes e identificador de fragmento
URI de redirección OAuth
https://auth.example.com/authorize?redirect_uri=https://myapp.com/callback?code=abc&state=xyz
https://auth.example.com/authorize?redirect_uri=https%3A%2F%2Fmyapp.com%2Fcallback%3Fcode%3Dabc%26state%3Dxyz
El valor de redirect_uri contiene una URL completa que debe codificarse para que sus caracteres especiales no se interpreten como parte de la URL externa
Cómo usar
- 1
Introduce una URL o cadena codificada
Pega una URL en el área decodificada para codificarla, o pega una cadena codificada con porcentaje en el área codificada para decodificarla. Selecciona el modo encodeURI o encodeURIComponent según tu caso de uso.
- 2
Consulta los resultados y la estructura analizada
La otra área se actualiza instantáneamente mientras escribes. El analizador de URL descompone la URL en protocolo, host, puerto, ruta, parámetros de consulta y fragmento — todos editables.
- 3
Copia o reconstruye
Haz clic en Copiar para copiar el resultado codificado o decodificado. Edita los componentes individuales de la URL y haz clic en Reconstruir para construir una nueva URL a partir de las partes modificadas.
Errores comunes
Doble codificación (%2520 en lugar de %20)
La doble codificación ocurre cuando una URL ya codificada se codifica nuevamente. El % en %20 se codifica como %25, convirtiendo %20 en %2520. Esto rompe la URL porque el servidor ve una cadena literal %20 en lugar de un espacio.
https://example.com/path%2520with%2520spaces
https://example.com/path%20with%20spaces
Espacio codificado como + en segmentos de ruta
El carácter + representa un espacio solo en formato application/x-www-form-urlencoded (cadenas de consulta de formularios HTML). En segmentos de ruta URL, + se interpreta como un signo más literal, no un espacio. Siempre usa %20 para espacios en segmentos de ruta.
https://example.com/my+file+name.pdf
https://example.com/my%20file%20name.pdf
Usar encodeURI en valores de parámetros de consulta
encodeURI() no codifica &, = ni otros caracteres reservados, por lo que usarlo en un valor de parámetro que contiene estos caracteres corrompe la estructura de la cadena de consulta.
encodeURI('key=value&more') → 'key=value&more' (& not encoded!) encodeURIComponent('key=value&more') → 'key%3Dvalue%26more' Asumir codificación no UTF-8
Algunos sistemas legacy usan codificaciones como Latin-1 o Shift-JIS para parámetros URL. Los estándares modernos requieren UTF-8. Decodificar un parámetro codificado en Shift-JIS con un decodificador UTF-8 produce texto corrupto.
Decoding %82%B1%82%F1 as UTF-8 (this is Shift-JIS for こん)
Using UTF-8: %E3%81%93%E3%82%93 correctly decodes to こん
Codificar rutas relativas sin contexto
Codificar una ruta relativa como ../images/photo.jpg con encodeURIComponent convierte las barras y puntos en secuencias codificadas con porcentaje, rompiendo la estructura de la ruta. Usa encodeURI() o codifica solo los segmentos de ruta individuales.
encodeURIComponent('../images/photo.jpg') → '..%2Fimages%2Fphoto.jpg' Encode each segment: '../images/' + encodeURIComponent('my photo.jpg') Casos de uso comunes
- Depuración de URLs ilegibles
- Decodifica URLs codificadas con porcentaje de registros de servidor, mensajes de error o herramientas de desarrollo del navegador para leer el texto original legible.
- Desarrollo de APIs
- Codifica valores de parámetros de consulta para llamadas API REST, asegurando que caracteres especiales como &, = y espacios no rompan la URL de la solicitud.
- Configuración de flujos OAuth
- Codifica correctamente redirect_uri y otros parámetros URL en URLs de autorización OAuth para prevenir fallos de autenticación.
- URLs internacionalizadas
- Codifica y decodifica URLs que contienen caracteres chinos, japoneses, coreanos, árabes u otros caracteres no ASCII para aplicaciones web internacionalizadas.
- Análisis de enlaces de marketing
- Decodifica URLs de seguimiento de campañas de email y plataformas publicitarias para entender los parámetros UTM incrustados y las cadenas de redirección.
- Inspección de estructura URL
- Analiza URLs complejas en sus componentes — protocolo, host, puerto, ruta, parámetros de consulta y fragmento — para análisis y modificación.
Detalles técnicos
- Caracteres reservados y no reservados RFC 3986
- RFC 3986 define caracteres no reservados (A-Z, a-z, 0-9, -, ., _, ~) que nunca necesitan codificación, y caracteres reservados (:, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =) que sirven como delimitadores URI y deben codificarse con porcentaje cuando se usan como datos.
- Flujo de codificación de bytes UTF-8
- Los caracteres no ASCII primero se convierten a su punto de código Unicode, luego se codifican como bytes UTF-8 (1-4 bytes según el rango del punto de código), y finalmente cada byte se codifica con porcentaje como %XX. Por ejemplo: é (U+00E9) → bytes UTF-8 C3 A9 → %C3%A9. El emoji 🎉 (U+1F389) → bytes UTF-8 F0 9F 8E 89 → %F0%9F%8E%89.
- Terminología URL vs URI
- Un URI (Identificador Uniforme de Recurso) es el término general para cualquier cadena identificadora. Una URL (Localizador Uniforme de Recurso) es un URI que también especifica el mecanismo de acceso (como https://). Las reglas de codificación de RFC 3986 se aplican a todos los URIs. La API de JavaScript usa la terminología URI (encodeURI, decodeURI), mientras que el uso cotidiano prefiere URL.
Buenas prácticas
- Usa el modo correcto para cada tarea
- Usa encodeURIComponent() para claves y valores de parámetros de consulta individuales. Usa encodeURI() solo cuando tengas una URL completa y quieras codificar caracteres inseguros sin romper su estructura. Nunca uses encodeURI() en valores de parámetros que puedan contener &, = u otros caracteres reservados.
- Evita la doble codificación
- Antes de codificar una cadena, verifica si ya está codificada. Busca secuencias % existentes. Codificar una cadena ya codificada convierte %20 en %2520, %3D en %253D, etc. Si no estás seguro, decodifica primero y luego codifica una vez.
- Decodifica en el lado del servidor
- La mayoría de los frameworks web decodifican automáticamente los parámetros URL antes de que tu código de aplicación los vea. Evita decodificar manualmente parámetros que tu framework ya ha decodificado — esto puede causar problemas si el valor original contenía secuencias de porcentaje literales.
- Codifica valores para OAuth y firma de API
- Las cadenas base de firma OAuth 1.0 y muchos algoritmos de firma API requieren codificación porcentual estricta RFC 3986. Usa encodeURIComponent() y luego reemplaza los caracteres restantes que no codifica (como !, ', (, ), *) con sus equivalentes codificados con porcentaje si la especificación lo requiere.
Preguntas frecuentes
¿Qué es la codificación URL y por qué es necesaria?
¿Cuál es la diferencia entre encodeURI y encodeURIComponent?
¿La codificación URL es lo mismo que la codificación HTML?
¿Por qué mi URL se rompe en un comando curl?
¿Por qué los caracteres chinos se convierten en cadenas como %E4%B8%AD en las URLs?
¿Debo codificar el parámetro redirect_uri en OAuth?
¿Cuál es la diferencia entre querystring y URLSearchParams en Node.js?
¿Cómo codifico una URL en Python, JavaScript y Java?
¿Qué caracteres no se codifican con la codificación URL?
¿Cuál es la diferencia entre + y %20 para codificar espacios?
¿Cómo maneja la codificación URL los emojis?
¿Se puede usar la codificación URL para cifrado o seguridad?
¿Cuál es la longitud máxima de una URL?
¿Cuál es la diferencia entre una URL y un URI?
Herramientas relacionadas
Ver todas las herramientas →Decodificador y Codificador Base64
Codificación y Formato
Decodifica y codifica Base64 online de forma gratuita. Conversión en tiempo real con soporte completo de UTF-8 y emojis. 100% privado — funciona en tu navegador. Sin registro.
Formateador y Validador JSON
Codificación y Formato
Formatea, valida y embellece JSON al instante en tu navegador. Herramienta gratuita con validación sintáctica, detección de errores, minificación y copia con un clic. 100% privado.
Conversor de Bases — Binario, Hex, Decimal, Octal
Herramientas de Conversión
Convierte números entre binario, hexadecimal, decimal, octal y cualquier base personalizada (2-36) al instante. Gratis, privado, sin registro — todo el procesamiento ocurre en tu navegador.
Comprimir Imágenes Online — JPEG, PNG y WebP
Herramientas de Conversión
Reduce el tamaño de las imágenes hasta un 80% — comprime JPEG, PNG y WebP en tu navegador, sin subir archivos. Lotes de 20 imágenes, ajusta la calidad, compara antes y después. Gratis y privado.
Convertidor de Longitud — Métrico e Imperial
Herramientas de Conversión
1 pulgada = 2,54 cm, 1 pie = 0,3048 m, 1 milla = 1,609 km. Convierte entre 16 unidades de longitud al instante — métrico, imperial, náutico y astronómico. Gratis, privado, funciona en tu navegador.
Generador de Hash MD5 Online y Verificador de Checksum
Herramientas de Seguridad
Genera hashes MD5, SHA-256, SHA-1 y SHA-512 gratis — 100% en tu navegador, sin registro. Hashea texto o archivos, verifica checksums y compara hashes con un clic. Tus datos permanecen privados.