Codificación de URLs Explicada (Percent-Encoding y Cuándo Aplica)

Las URLs son sorprendentemente exigentes con los caracteres que aceptan. Los espacios, acentos y símbolos pueden romper un enlace o corromper un parámetro a menos que se codifiquen. Esta guía explica el percent-encoding, la diferencia entre `%20` y `+`, y cómo arreglar una URL rota.

¿Por qué una URL debe codificarse?

Una URL está hecha de caracteres reservados (/, ?, &, =, # y otros) que llevan estructura. Si tus datos contienen alguno, debes codificarlo para que el navegador no lo lea mal. Los caracteres no ASCII como ? y é también deben codificarse en secuencias de porcentaje.

¿Cómo funciona el percent-encoding?

Cada byte inseguro se vuelve un % seguido de dos dígitos hexadecimales. La letra ? se vuelve %3F, é se vuelve %C3%A9, y muchos espacios aparecen como %20. Como esas cadenas hexadecimales nunca chocan con los caracteres reservados, la URL permanece sin ambigüedad.

¿Por qué algunas URLs usan %20 y otras usan +?

En la parte de la ruta de una URL, los espacios normalmente se codifican como %20. En cuerpos application/x-www-form-urlencoded y en algunas cadenas de consulta, se usa un + para el espacio. La elección depende del contexto, por eso una URL de aspecto correcto puede renderizar distinto.

¿Cuáles son las roturas comunes y cómo detectarlas?

Un enlace con un & en bruto en un valor divide el parámetro en silencio. Un # en un valor trunca el resto de la URL. Un valor con espacios puede cortarse. Si tus datos contienen alguno de estos, codifícalos antes de construir el enlace.

¿Cómo codificar y decodificar una URL con seguridad?

Codifica la parte correcta de la URL con la función correcta y verifica el resultado. El codificador de URLs te permite alternar entre estilos %20 y +, detecta lo ya codificado y maneja consultas completas o componentes individuales.

FAQ

Artículos Relacionados