Codificador / decodificador URL

Codifica o decodifica URLs y texto con percent encoding.

El formulario interactivo está listo al activar JavaScript.

Cómo utilizar

La codificación por porcentaje sustituye los caracteres que tienen un significado dentro de una URL, como los espacios, &, ?, # y las letras acentuadas, por un % seguido de sus valores de byte, para que el texto sobreviva al pegarlo, registrarlo y analizarlo. Pega un texto y elige «Codificar» o «Decodificar»; el resultado aparece debajo con un botón «Copiar».

«Codificar» trata todo lo que pegas como un único valor, que es como debe codificarse un parámetro de consulta o un segmento de ruta. Solo se dejan tal cual las letras, los dígitos y - _ . ! ~ * ' ( ); todo lo demás se codifica, incluidos : / ? # & y =. Eso es exactamente lo que necesita un valor, pero no es la forma de codificar una dirección completa: https://example.com/a b se convierte en https%3A%2F%2Fexample.com%2Fa%20b, que ya no funciona como enlace. Codifica las partes que lo necesitan y conserva los separadores.

Los caracteres que no son ASCII simple se convierten primero a UTF-8 y luego se codifican byte a byte, así que é pasa a ser %C3%A9 y un emoji como 😀 se convierte en cuatro códigos % (%F0%9F%98%80).

«Decodificar» vuelve a convertir los códigos % en texto. Un + se deja como +, porque el signo más solo significa espacio en los datos codificados de formularios; y un % que no va seguido de dos dígitos hexadecimales válidos, como en 100%, no se puede decodificar y se indica como no válido. Todo se ejecuta en tu navegador.

Ejemplo

Los espacios pasan a %20 y los caracteres reservados se codifican con porcentajes. Decodificar recupera el texto original.

  • hello worldhello%20world
  • a&b=c como un valora%26b%3Dc
  • cafécaf%C3%A9
  • https://example.com/?q=1https%3A%2F%2Fexample.com%2F%3Fq%3D1: correcto como valor dentro de otra URL, incorrecto como enlace por sí solo.
  • a+b%20c → «Decodificar»a+b c: el %20 se convierte en un espacio y el + se queda.

Preguntas frecuentes

¿Por qué a veces aparece + en lugar de %20?

El signo más significa espacio solo en el formato form-urlencoded que usan los envíos de formularios HTML. En el resto de una URL, un más es un más literal, y por eso esta herramienta codifica un espacio como %20 y deja un + sin cambios al decodificar.

¿Por qué una letra acentuada se convierte en seis caracteres?

Primero se pasa a UTF-8 y luego se codifica byte a byte. La letra é ocupa dos bytes, así que se convierte en %C3%A9.

¿Por qué falla la decodificación?

Normalmente porque el texto contiene un % que no forma parte de un carácter codificado, como 100%, o una secuencia que no es UTF-8 válido. Codifica antes el % suelto como %25.

¿Debo codificar una URL entera antes de compartirla?

No. Una URL que ya funciona debe compartirse tal cual; volver a codificarla convierte sus separadores en códigos y la rompe. Solo hay que codificar los valores que se colocan dentro de una URL.

Herramientas relacionadas