¿Qué es la codificación URL? Una explicación completa de la codificación porcentual
Respuesta rápida
La codificación URL (codificación porcentual) reemplaza los caracteres no seguros en un URL con % seguido de dos dígitos hexadecimales. Por ejemplo, el espacio se convierte en %20 y & se convierte en %26. Garantiza que URLs se pueda transmitir sin ambigüedad. Utilice nuestro codificador y decodificador URL gratuito para realizar conversiones en su navegador.
Introducción
La codificación URL, también llamada codificación porcentual, es un mecanismo para codificar caracteres especiales en un URL para que puedan transmitirse de forma segura a través de Internet. URLs solo puede contener un conjunto limitado de caracteres ASCII: letras, dígitos y algunos caracteres reservados. Cualquier otro carácter (espacios, comillas, letras que no sean ASCII) debe codificarse como un signo de porcentaje (%) seguido de dos dígitos hexadecimales que representan el valor del byte del carácter. La codificación URL está definida por RFC 3986.
Paso a paso
-
Comprender qué caracteres necesitan codificación
Los caracteres no reservados (A-Z, a-z, 0-9, -, _, ., ~) no necesitan codificación. Los caracteres reservados (:, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =) tienen un significado especial en URLs y deben codificarse cuando se utilizan como datos. Todos los demás caracteres (espacios, comillas, no ASCII) deben estar codificados.
-
Aprenda el mecanismo de codificación
Cada carácter que necesita codificación se convierte a su secuencia de bytes UTF-8, luego cada byte se representa como %XX, donde XX es el valor hexadecimal. Espacio (0x20) → %20. El carácter no ASCII 'é' (UTF-8: 0xC3 0xA9) → %C3%A9.
-
Distinguir encodeURI vs encodeURIComponent
encodeURI() codifica un URL completo pero conserva los caracteres reservados (:/?&=) que forman parte de la estructura URL. encodeURIComponent() codifica todo excepto los caracteres no reservados; utilícelo para valores de parámetros de consulta donde los caracteres reservados son datos, no estructura.
-
Decodificar porcentaje codificado URLs
La decodificación invierte la codificación: %20 → espacio, %C3%A9 → é. Utilice decodeURI() para URLs completo y decodeURIComponent() para valores de parámetros de consulta. Las secuencias de escape no válidas (como %ZZ) arrojan errores.
Ejemplos
codificar un espacio
Aporte: hello world
Producción: hello%20world
Codificar texto no ASCII
Aporte: café
Producción: caf%C3%A9
Codificar un valor de parámetro de consulta
Aporte: name=John Doe & Co.
Producción: name%3DJohn%20Doe%20%26%20Co.
Problemas comunes
- Codificar todo el URL cuando solo es necesario codificar los valores: codificar los valores de los parámetros de consulta, no la estructura URL (://?&=).
- Codificación doble: si un URL ya está codificado, la codificación nuevamente produce %2520 en lugar de %20. Decodifica primero si no estás seguro de si ya está codificado.
- Uso incorrecto de encodeURI frente a encodeURIComponent: encodeURI conserva URL caracteres de estructura; encodeURIComponent los codifica. Utilice este último para consultar valores de parámetros.
- Secuencias de escape no válidas: %ZZ o un solo % al final no son válidas y arrojarán errores cuando se decodifiquen.
Consejos
- Codifique siempre los valores de los parámetros de consulta que puedan contener espacios, caracteres especiales o entradas del usuario para evitar la inyección de URL.
- Utilice encodeURIComponent() para consultar valores de parámetros y encodeURI() para URLs completo que solo necesita caracteres no seguros codificados.
- La codificación URL no es codificación; cualquiera puede decodificarla. Nunca lo utilices para ocultar datos confidenciales.
- Utilice nuestro codificador y decodificador URL para una conversión privada e instantánea en su navegador.