Codificador / decodificador URL
Codifica o decodifica URLs y texto con percent encoding.
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%20worlda&b=c como un valora%26b%3Dccafécaf%C3%A9https://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.