Cómo funciona la codificación de URL y el percent-encoding
Qué hace esta herramienta
Una URL solo puede transportar de forma segura un conjunto limitado de caracteres. Todo lo que quede fuera de las letras, dígitos y unos pocos símbolos sin reservar debe reescribirse como percent-encoding: un signo % seguido del valor del byte en hexadecimal. Esta herramienta convierte texto normal a esa forma codificada y también realiza el proceso inverso, devolviendo secuencias como %20 y %26 a los caracteres que representan.
Tres modos de codificación cubren las situaciones reales. La codificación estándar replica encodeURI de JavaScript y está pensada para una URL completa, por lo que caracteres estructurales como :, /, ? y # se mantienen intactos. La codificación de componente replica encodeURIComponent y también escapa esos caracteres estructurales, que es lo que necesitas para una parte aislada como el valor de un parámetro. La codificación de formulario sigue la regla application/x-www-form-urlencoded que usa el navegador al enviar un formulario.
Cuándo usarla
Recurre a la codificación de componente siempre que un valor vaya dentro de una cadena de consulta: un término de búsqueda, una dirección de correo o un destino de redirección que a su vez contenga ?, & o =. Codificarlo evita que esos símbolos se interpreten como estructura de la URL y rompan el enlace. La codificación estándar encaja con una dirección completa que estás depurando, donde se colaron espacios o letras acentuadas pero las barras y el signo de interrogación deben seguir teniendo significado. La codificación de formulario coincide con el cuerpo de una petición POST o con una carga de formulario construida a mano, donde los espacios se escriben como + en lugar de %20. Decodificar es igual de habitual: pegar un enlace codificado de un registro, un informe de analítica o una cadena de redirecciones y leer a dónde apunta en realidad.
Un ejemplo concreto
Toma el texto hello world & café. Con la codificación de componente, un espacio pasa a %20, el ampersand se convierte en %26 y café —como é se almacena en dos bytes UTF-8— queda como caf%C3%A9. Con la codificación de formulario, ese mismo espacio se escribe como +, dando hello+world. Las estadísticas en vivo indican cuántos caracteres cambiaron y qué proporción de la cadena se codificó, una forma rápida de detectar texto que ya venía codificado.
Notas y casos límite
Los caracteres reservados (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) tienen significado dentro de una URL, así que el modo estándar los deja a propósito sin tocar mientras que el modo de componente los escapa; elegir el modo equivocado es la causa habitual de un parámetro de consulta roto. La codificación se define sobre bytes UTF-8, de modo que cualquier carácter no ASCII se expande en varios grupos %XX. Evita codificar una URL dos veces: un % suelto que ya forma parte de un escape se convierte en %25 y el enlace deja de resolverse. Ante la duda, decodifica primero para comprobar si el texto está en crudo o ya escapado.