En este artículo
¿Qué es la codificación de URL?
La codificación de URL (también llamada codificación porcentual) convierte los caracteres que no son seguros o están reservados en URLs a un formato seguro. Cada carácter no seguro se reemplaza por el signo % seguido de su código ASCII hexadecimal de dos dígitos. Por ejemplo, un espacio se convierte en %20 y un ampersand en %26.
Las URLs solo pueden contener un conjunto limitado de caracteres ASCII. Los caracteres fuera de este conjunto — incluyendo espacios, letras no ASCII y símbolos especiales — deben codificarse de forma porcentual para transmitirse de forma segura en una URL.
Cómo funciona la codificación de URL
El codificador identifica los caracteres que no son seguros en URLs y los reemplaza con sus equivalentes codificados de forma porcentual.
- Detección de caracteres seguros — las letras, dígitos y - _ . ~ se dejan sin cambios
- Manejo de caracteres reservados — ! * ' ( ) ; : @ & = + $ , / ? # [ ] se codifican en la mayoría de los contextos
- Soporte Unicode — los caracteres no ASCII se codifican primero en UTF-8 y luego cada byte se codifica de forma porcentual
Pruébalo gratis — sin registro
Codificar o decodificar una URL →Cuándo usar la codificación de URL
La codificación de URL es necesaria siempre que aparezcan caracteres especiales en los componentes de una URL.
- Parámetros de consulta — codifica los valores pasados como parámetros de cadena de consulta, especialmente los términos de búsqueda proporcionados por el usuario
- Solicitudes API — codifica segmentos de ruta y parámetros al construir URLs de API mediante programación
- Datos de formularios — codifica los datos del formulario antes de añadirlos a las URLs en solicitudes GET
Preguntas frecuentes
¿Cuál es la diferencia entre encodeURI y encodeURIComponent en JavaScript?
encodeURI codifica una URL completa y deja intactos caracteres como /, :, # porque tienen significado estructural en las URLs. encodeURIComponent codifica un único componente de URL (como el valor de un parámetro de consulta) y también codifica de forma porcentual esos caracteres estructurales. Para codificar valores de parámetros individuales, utiliza siempre encodeURIComponent.
¿Por qué a veces un espacio aparece como + en lugar de %20?
El formato application/x-www-form-urlencoded (usado en el envío de formularios HTML) codifica los espacios como + en lugar de %20. Esta es una convención heredada de los primeros estándares web. En las cadenas de consulta de formularios HTML, + significa espacio; en otros contextos de URL se usa %20. Ambas son válidas, pero el contexto determina cuál utilizar.
¿Necesito codificar toda la URL o solo partes de ella?
Solo codifica los componentes individuales (segmentos de ruta, valores de parámetros de consulta). Codificar toda la URL también codificaría los caracteres :, / y ? que definen la estructura de la URL, rompiéndola. La regla es: codifica los valores, no los caracteres estructurales que forman la URL.