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.