Skip to main content
CheckTown
Convertidores

Codificación y decodificación de URL: Haz URLs seguras para la web al instante

Publicado 5 min de lectura
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.

Herramientas relacionadas