Qué hace esta herramienta
Cada secuencia %XX pasa a ser el byte que esos dos dígitos nombran, y los bytes resultantes se leen como texto UTF-8. caf%C3%A9 da café, porque la letra acentuada son dos bytes.
Los dígitos hexadecimales funcionan en mayúsculas y en minúsculas.
El signo más es lo que hay que saber
Un más sigue siendo un más. Es correcto —y probablemente no es lo que esperabas—, así que conviene precisar por qué.
Dos codificaciones se parecen y discrepan en exactamente un carácter:
- la de porcentaje, usada en una ruta de URL y en una cadena de consulta moderna, escribe el espacio como
%20y trata+como un más literal; - la de formulario (
application/x-www-form-urlencoded), lo que envía un formulario HTML, escribe el espacio como+.
Esta herramienta aplica la primera, igual que decodeURIComponent en un navegador.
Nada en la cadena dice cuál la produjo. Una herramienta que adivinara corrompería el otro caso: un más es un carácter legítimo en una dirección de correo, un número de teléfono, un término de búsqueda. Convertir cada más en espacio destruiría esos valores con la misma seguridad con que dejarlos intactos incomoda a los datos de formulario.
Así que si tu entrada viene de un formulario, sustituye antes + por %20. Un buscar y reemplazar, y el resultado es correcto.
Qué rechaza
Un signo de porcentaje sin dos dígitos hexadecimales detrás. 100% no se puede decodificar: no hay byte que producir, e inventarlo sería peor que un error. La forma correctamente codificada es 100%25.
Una secuencia %XX que no forme UTF-8 válido también se rechaza en vez de sustituirse por un marcador: así te enteras de que la entrada está dañada, en lugar de leer un texto que nunca existió.
Privado por diseño
Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.