URL Encode / Decode
- Elige el modo: codificar o decodificar.
- Pega o escribe el texto.
- El resultado se actualiza mientras escribes y se puede copiar directamente.
Las URLs solo pueden contener un conjunto restringido de caracteres. Cualquier otro debe representarse con un signo de porcentaje seguido del valor hexadecimal del byte, de ahí el nombre percent-encoding.
Un espacio pasa a %20, la arroba a %40, la barra a %2F. Los caracteres acentuados ocupan más de un byte en UTF-8 y generan más de una secuencia: la ñ pasa a %C3%B1.
Sin esa conversión, un parámetro que contenga & o = rompería la estructura de la cadena de consulta, y el servidor leería datos equivocados.
Esta herramienta usa encodeURIComponent, que es lo correcto para codificar el valor de un parámetro aislado. Escapa &, =, ?, /, # y el resto de caracteres con papel estructural en la URL.
La función encodeURI sirve para una URL completa y preserva justamente esos caracteres, porque ahí son separadores legítimos. Usarla en el valor de un parámetro deja pasar & y = y corrompe la cadena de consulta.
Regla práctica: una URL completa usa encodeURI; un fragmento que va dentro de un parámetro usa encodeURIComponent.
No todo se escapa: los caracteres ! ' ( ) * — y también - _ . ~ — se dejan intactos por especificación. Algunos servidores antiguos esperan que los cinco primeros lleguen también codificados.
En los formularios HTML enviados como application/x-www-form-urlencoded, el espacio pasa a +, no a %20. Son dos convenciones distintas que conviven.
Eso significa que decodificar la cadena de consulta de un formulario exige cambiar + por espacio antes. Un texto que contenía un signo más literal y no se codificó como %2B llega al servidor como espacio, causa clásica de datos de búsqueda corrompidos.
La conversión ocurre en tu navegador; no se transmite ni se registra nada.
Preguntas frecuentes
Son dos convenciones. El percent-encoding de URL usa %20; los formularios enviados como x-www-form-urlencoded usan +. Ambas son correctas en su contexto.
encodeURIComponent para el valor de un parámetro, que es el caso más común. encodeURI solo para una URL completa ya montada, en la que las barras y el signo de interrogación deben conservarse.
Porque en UTF-8 ocupa dos bytes, y cada byte recibe su propia secuencia percent. La ñ pasa a %C3%B1.
Puedes, pero rara vez es lo que quieres. Codificar dos veces convierte % en %25 y el valor llega al destino con una capa de más. Si ves %2520 en algún sitio, ese es exactamente el problema.
No. La conversión ocurre en tu navegador y no se registra nada.