Herramientas
Guías

Codificar / decodificar URL

Codificación

Codificación porcentual para componentes de URL y URL completas (RFC 3986).

100 % del lado del cliente Sin backend
Entrada
Salida
En esta página

¿Qué es la codificación de URL?#

Las URL solo pueden contener un pequeño conjunto de caracteres sin escapar: letras ASCII, dígitos y un puñado de símbolos como -, _, ., ~. Todo lo demás (un espacio, un &, un carácter chino, un emoji, incluso un / cuando va como dato y no como separador de ruta) tiene que escribirse como un escape porcentual: % seguido de dos dígitos hexadecimales, como %20 para un espacio o %E4%B8%AD para los bytes UTF-8 de . La codificación de URL es la traducción mecánica que hace que texto arbitrario viaje de forma segura dentro de una URL.

Hay dos trabajos distintos que se confunden constantemente, y esta herramienta los expone a ambos mediante el selector Opciones:

  • Modo Componente (el camino de encodeURIComponent en JavaScript) escapa todo lo que no sea una letra, un dígito o uno de - _ . ! ~ * ' (. Úsalo cuando el texto es una única pieza de datos que vas a colocar en un parámetro de consulta, un segmento de ruta o un fragmento, de modo que los caracteres con significado estructural (/ ? & = #) se reduzcan a texto literal inofensivo.
  • Modo URL completa (el camino de encodeURI) escapa los mismos bytes inseguros pero deja intactos los caracteres estructurales propios de la URL (: / ? # [ ] @ ! $ & ' ( ) * + , ; =). Úsalo cuando tienes una URL completa que ya tiene la forma correcta y solo quieres limpiar los caracteres literales que lleva dentro.

La decodificación invierte cualquiera de las dos formas. Cuando la entrada contiene un escape mal formado como %GG (hex no válido) o un % suelto, la herramienta muestra el error y señala la posición infractora en lugar de adivinar.

Cómo usarlo#

  1. Elige Codificar o Decodificar en el conmutador de la parte superior izquierda.
  2. En Opciones, elige Componente para un único valor que colocas en una URL, o URL completa para una URL entera que debe conservar su estructura.
  3. Pega en el panel de Entrada a la izquierda.
  4. Lee el resultado del panel de Salida a la derecha y pulsa Copiar.
  5. Ejemplo carga una cadena de demostración; Limpiar reinicia los paneles.

Características principales#

  • Dos ámbitos reales, no uno. Componente frente a URL completa refleja exactamente la distinción encodeURIComponent / encodeURI, así puedes escapar un único valor o adecentar una URL entera sin cambiar de herramienta.
  • UTF-8 por defecto. Los caracteres no ASCII se codifican como su secuencia de bytes UTF-8 (el estándar desde RFC 3986), así 中文 se convierte en %E4%B8%AD%E6%96%87, no en un bloque Latin-1 de escape único.
  • Los errores señalan la posición. Cuando la decodificación encuentra un escape % no válido, la línea de estado informa de dónde está, en lugar de descartar toda la entrada.
  • Se ejecuta localmente. Todo ocurre en tu navegador; nada de lo que pegas se sube.

Ejemplo detallado#

Codificar el fragmento a/b?c=d & e con modo Componente produce:

a%2Fb%3Fc%3Dd%20%26%20e

Fíjate en que / se convierte en %2F, ? en %3F, = en %3D, el espacio en %20 y & en %26: cada carácter que de otro modo podría leerse como estructura de URL queda neutralizado. Es la forma correcta para meter la cadena entera en un único valor de consulta.

Ahora cambia a modo URL completa y codifica una URL completa:

https://example.com/path?q=hello world&lang=zh CN

El resultado conserva intactos el protocolo, las barras, ? y &, y solo escapa los espacios literales:

https://example.com/path?q=hello%20world&lang=zh%20CN

Esa es la diferencia entre los dos modos de un vistazo: Componente aplana todo a dato, URL completa preserva el esqueleto de la URL y solo limpia los bytes que lo necesitaban.

Preguntas frecuentes#

Componente o URL completa, ¿cómo decido?#

Si estás construyendo una cadena de consulta y uno de los valores proviene de entrada del usuario, codifica ese valor con Componente. Si ya tienes una URL totalmente formada que simplemente contiene unos cuantos caracteres extraños (espacios, acentos), pásala entera por URL completa. Una prueba útil: ¿la salida aún necesita su ?, su & y su / para funcionar como enlace? Usa URL completa. ¿Esos caracteres son en realidad parte de los datos? Usa Componente.

Mi cadena decodificada tiene %GG y la herramienta da error. ¿Por qué?#

% debe ir siempre seguido de dos dígitos hexadecimales. %GG no es hex válido, así el decodificador lo rechaza e informa de la posición, la misma entrada que lanzaría un URIError en código. Corrige la fuente para que envíe %25 (la forma codificada de un % literal) o arregla el escape mal formado.

¿Debo codificar antes o después de construir la cadena de consulta?#

Codifica cada valor antes de unirlo con = y &. Si construyes primero ?q=a & b y luego codificas el conjunto con modo Componente, el = y el & también se escapan y el servidor deja de verlos como separadores. Codifica las piezas y luego monta.

¿Esto gestiona Unicode igual que los navegadores?#

Sí. Los navegadores y servidores modernos esperan que los escapes porcentuales transporten bytes UTF-8, y eso es lo que emite esta herramienta: se convierte en %E4%B8%AD. Si estás depurando un sistema antiguo que espera una codificación heredada de un solo byte (Latin-1, GBK, etc.), los bytes diferirán y necesitarás una herramienta específica de esa codificación.