← Herramientas de Desarrollo

Codificador / Decodificador de URL

Codifica o decodifica URLs y componentes de URL. Analiza URLs en sus partes. Funciona en tu dispositivo.

encodeURIComponent · codifica todo excepto letras, dígitos y - _ . ! ~ * ' ( )

La codificación de URL (también llamada percent-encoding) convierte los caracteres que no están permitidos o que tienen significado especial en una URL en una representación segura, en concreto un signo de porcentaje seguido de dos dígitos hexadecimales. Un espacio se convierte en %20, un signo & en %26, y así sucesivamente. Esta herramienta codifica y decodifica cadenas en tres modos: Componente de URL (encodeURIComponent), URL Completa (encodeURI) y Datos de Formulario (espacio como signo más). También analiza URLs completas y separa cada parte usando la API URL nativa del navegador.

Cómo usarlo

  1. Elige Codificar o Decodificar. Codificar convierte texto plano al formato percent-encoded. Decodificar convierte una cadena percent-encoded de vuelta a texto plano. Ambas direcciones funcionan en vivo: editar un lado actualiza el otro.
  2. Elige el tipo de codificación. Componente de URL es el modo por defecto y la opción correcta para codificar valores individuales, como valores de parámetros de consulta o segmentos de ruta. URL Completa conserva la estructura de una URL entera. Datos de Formulario usa + para los espacios en lugar de %20, siguiendo el formato de envío de formularios HTML por POST.
  3. Pega tu texto. La salida se actualiza automáticamente mientras escribes. Ambas cajas de texto son editables. Puedes escribir en cualquiera de los dos lados y el otro se actualiza al instante.
  4. Analiza una URL (opcional). Con una URL completa en la entrada, haz clic en Analizar URL para separarla en protocolo, dominio, puerto, ruta, parámetros de consulta y fragmento hash. Cada valor de parámetro se muestra decodificado para facilitar la lectura.

Consejos para un mejor resultado

  • Usa Componente de URL para valores de parámetros. Si estás construyendo una URL a mano y necesitas codificar el valor de un parámetro de consulta, Componente de URL es el modo correcto. Codifica los caracteres & y = que separan los parámetros, así el valor codificado puede incluirse con seguridad sin romper la estructura de la URL.
  • Usa URL Completa solo con URLs enteras. encodeURI deja a propósito sin codificar caracteres como ?, &, =, # y /, porque cumplen una función estructural en la URL. Si codificas el valor de un parámetro con el modo URL Completa, esos caracteres pasan sin codificar y rompen tu URL.
  • Datos de Formulario es para cuerpos POST, no para URLs. Los formularios HTML con method="POST" y codificación application/x-www-form-urlencoded usan + para representar los espacios. Esto difiere de la codificación de URL, donde los espacios son %20. Si estás decodificando el cuerpo de un envío de formulario, usa el modo Datos de Formulario.
  • Usa el analizador para depurar query strings. Pegar una URL compleja con muchos parámetros en el analizador y ver la tabla de claves y valores decodificados es más rápido que decodificar cada parámetro a mano.

Por qué usar PixMidas

  • 100% privado. Toda la codificación y el análisis usan APIs nativas de JavaScript en tu dispositivo. No se envía nada a ningún servidor.
  • Tres modos de codificación. Componente de URL, URL Completa y Datos de Formulario cubren todos los escenarios comunes de percent-encoding en una sola herramienta.
  • Analizador de URL integrado. El analizador separa cualquier URL válida en sus componentes estructurales y decodifica los valores de los parámetros de consulta, útil para depurar llamadas a APIs, redirecciones OAuth y query strings complejas.
  • Edición bidireccional. Ambas cajas de texto funcionan en vivo. Puedes escribir o pegar en cualquiera de los dos lados y el otro se actualiza al instante.
  • Sin cuenta y sin registro. Gratis e instantáneo. La codificación se ejecuta localmente en tu dispositivo.

Preguntas frecuentes

¿Qué es la codificación de URL y cuándo la necesito?

La codificación de URL convierte los caracteres que no son seguros en una URL en una secuencia de porcentaje seguida de dos dígitos hexadecimales. Los caracteres fuera del conjunto no reservado ASCII (letras, dígitos, - _ . ~) deben codificarse cuando aparecen en una URL. Necesitas codificar siempre que incluyas datos proporcionados por el usuario en una URL, por ejemplo un término de búsqueda, una ruta de archivo o una dirección de correo como valor de un parámetro. Olvidar codificar caracteres especiales como &, = o + en los valores rompe la estructura de la URL y produce resultados incorrectos en el servidor que la recibe.

¿Cuál es la diferencia entre encodeURIComponent y encodeURI?

encodeURIComponent codifica todo excepto los 71 caracteres del conjunto no reservado: letras, dígitos y - _ . ! ~ * ' ( ). Es la función correcta para codificar componentes individuales de una URL, como valores de parámetros de consulta, segmentos de ruta e identificadores de fragmento. encodeURI deja además sin codificar los siguientes caracteres: ; , / ? : @ & = + $ #. Son los caracteres que forman la estructura de la URL. encodeURI solo es apropiado para codificar una URL completa que ya está correctamente formada, cuando solo quieres escapar los caracteres que romperían por completo la interpretación de la URL.

¿Qué es la codificación de Datos de Formulario y en qué se diferencia?

Los formularios HTML con method="POST" y el tipo de contenido por defecto application/x-www-form-urlencoded codifican el cuerpo del formulario con una versión modificada de la codificación de URL: los espacios se codifican como + en lugar de %20, y todo lo demás se codifica igual que con encodeURIComponent. Este es el formato que ves en los cuerpos de las peticiones POST al inspeccionar envíos de formularios en las herramientas de desarrollo del navegador. Al decodificar una cadena en este formato, los signos más deben convertirse de vuelta en espacios antes de aplicar decodeURIComponent.

¿Qué caracteres necesitan realmente codificarse?

En una URL, cualquier carácter fuera del conjunto no reservado ASCII debe codificarse. Los caracteres no reservados son: A-Z, a-z, 0-9, -, _, . y ~. Todos los demás, incluidos espacios, caracteres unicode, signos de puntuación y caracteres como &, =, ?, # y /, deben codificarse cuando aparecen como valores de datos (no como caracteres estructurales de la URL). Los caracteres fuera del ASCII, como las letras acentuadas y los emojis, se convierten primero en bytes UTF-8, y cada byte se codifica por separado.

¿Se puede codificar una URL dos veces por accidente?

Sí. Si codificas una cadena que ya contiene secuencias percent-encoded, los propios caracteres % se codifican como %25. Por ejemplo, %20 se convierte en %2520. Es un error común al codificar una URL que ya estaba parcialmente codificada, o al codificar algo copiado de la barra de direcciones del navegador (que en algunos navegadores ya muestra caracteres codificados). Si ves secuencias %25 en una URL codificada, la entrada probablemente ya estaba codificada. Decodifica una vez primero para obtener la cadena limpia y vuelve a codificar si hace falta.

¿Por qué el analizador muestra un error con mi URL?

El analizador usa el constructor URL nativo del navegador, que sigue la especificación WHATWG URL. Requiere una URL totalmente cualificada, con esquema (por ejemplo https:// o http://). Las URLs relativas como /ruta/de/pagina, los dominios sueltos como ejemplo.com y las URLs malformadas sin esquema no se pueden analizar. Añade https:// al principio para analizar un dominio o una ruta sin esquema.