URL
Codificador de URL
Codifica y decodifica URL en percent-encoding.
Acerca del percent-encoding
El percent-encoding (también llamado codificación URL) sustituye los caracteres que no son seguros dentro de una URL — espacios, &, ?, # letras no ASCII y más — por un % seguido de su valor hexadecimal. Así es como las cadenas de consulta y los segmentos de ruta transportan texto arbitrario sin romper la sintaxis de la propia URL.
No todos los caracteres necesitan codificarse, y el conjunto exacto que se deja tal cual depende del contexto. La RFC 3986 marca las letras, los dígitos y - _ . ~ como siempre seguros; todo lo demás en el conjunto "reservado" (como / ? # &) solo es seguro donde no está ya cumpliendo un papel sintáctico. También hay una peculiaridad específica de los formularios: application/x-www-form-urlencoded, el formato que usan los navegadores para enviar formularios HTML, codifica un espacio como + en lugar de %20 —una convención propia de ese tipo de contenido concreto, no de las URL en general.
Dónde te lo encontrarás
- Valores de cadenas de consulta con espacios, símbolos o texto no latino
- Envíos de formularios como application/x-www-form-urlencoded
- Codificación de URL de redirección o tokens pasados como parámetros de URL
- Hacer que rutas de archivos o términos de búsqueda sean seguros para incluir en un enlace
Preguntas frecuentes
¿El percent-encoding es lo mismo que Base64?
No — resuelven problemas distintos. El percent-encoding escapa caracteres específicos no seguros dentro de un texto que por lo demás es legible; Base64 recodifica datos binarios completos en un alfabeto fijo.
¿Por qué algunos caracteres permanecen iguales?
Las letras, los dígitos y un puñado de símbolos (- _ . ~) se definen como siempre seguros en una URL, por lo que se dejan sin modificar.
¿Esto codifica una URL completa o solo una parte?
Solo el texto que pegas como valor. Codificar una URL completa también escaparía las barras y los dos puntos que deben permanecer literales, así que aplícalo a valores de consulta individuales, no a toda la dirección.
¿Por qué un espacio a veces se convierte en + y a veces en %20?
Ambos son válidos, pero en sitios distintos. En la ruta o la cadena de consulta de una URL, un espacio se codifica correctamente como %20. El atajo + es específico del formato application/x-www-form-urlencoded con el que se envían los formularios HTML, donde un + literal debe codificarse a su vez como %2B para evitar ambigüedad. Esta herramienta produce %20, siempre correcto; si estás construyendo a mano un cuerpo codificado para formulario, sustituye los espacios codificados por +.