Ir al contenido principal

Cómo decodificar una cadena codificada para URL

La decodificación invierte la codificación porcentual: cada secuencia %XX se convierte en un byte y los bytes se leen como texto UTF-8. El modo Componente usa decodeURIComponent(), así que el resultado es exactamente el valor original.

Ejemplo práctico

Las secuencias UTF-8 de varios bytes se convierten en un solo carácter.

Entrada
caf%C3%A9%20%26%20cr%C3%A8me
Resultado · decodeURIComponent()
café & crème

%20 se convierte en un espacio, pero + se conserva como signo más literal.

Entrada
a+b%20c
Resultado · decodeURIComponent()
a+b c

A la última secuencia le falta un dígito hexadecimal, así que la herramienta muestra un error.

Entrada
%E0%A4%A
Resultado · decodeURIComponent()
URL codificada no válida

Con el dígito restituido, los tres bytes se decodifican como una letra devanagari.

Entrada
%E0%A4%A4
Resultado · decodeURIComponent()
त

Cómo lo resuelve la herramienta

  • Cada secuencia %XX es un byte, y los bytes consecutivos se decodifican juntos como UTF-8, de modo que %C3%A9 se convierte en é.
  • El signo más no se interpreta como espacio: + sigue siendo +. Si el texto procede de un formulario HTML, sustituye + por %20 antes de decodificar.
  • Si alguna secuencia está incompleta o no es UTF-8 válido, se rechaza toda la entrada con un error; nada se decodifica a medias.
  • El modo URL completa (decodeURI) mantiene codificados los escapes de caracteres reservados como %26, %2F y %3F, para no cambiar la estructura de la URL.

Guías de codificación de URL