Texto plano

Codificado en porcentaje

¿Qué es el Codificador de URL?

Suelta una cadena en el panel izquierdo y el panel derecho mostrará la versión codificada en porcentaje. Por dentro ejecuta encodeURIComponent, que escapa cada carácter con significado especial dentro de una URL — los espacios pasan a ser %20, los signos «&» a %26, la arroba a %40, etc. Esta es la codificación que necesitas para los VALORES de parámetros de consulta, segmentos de ruta y, en general, cualquier sitio donde una cadena sin procesar tenga que viajar dentro de una URL sin romperla.

Hay dos tipos de codificación y la diferencia importa. encodeURIComponent (esta página) escapa todo lo especial, incluidos ?, #, &, = y / — porque a nivel de valor, esos caracteres cambiarían el significado de la URL. encodeURI es más permisiva y deja en paz esos caracteres estructurales, porque asume que estás codificando una URL ya formada por completo. MDN tiene la tabla de caracteres reservados si necesitas el detalle. Si estás construyendo una URL completa a partir de piezas, lo que quieres es el URL Builder, no esta página.

La regla de codificación viene de RFC 3986 §2.1: cada byte no seguro se escribe como % seguido de dos dígitos hexadecimales de sus bytes UTF-8. Por eso un emoji como un cohete sale como cuatro tripletas con porcentaje (son cuatro bytes UTF-8), mientras que un carácter ASCII como ! queda en una. El estándar URL del WHATWG formaliza cómo lo hacen los navegadores modernos, y el artículo de Wikipedia sobre codificación porcentual tiene una tabla limpia para verificar a mano si lo necesitas. Todo ocurre en tu navegador. Nada se sube, nada se registra.

Cómo usar el Codificador de URL

Tres pasos. La página se actualiza mientras escribes — sin botón de Convertir.

1

Pega tu cadena o haz clic en Ejemplo

Escribe o pega cualquier texto en el panel izquierdo. Haz clic en Ejemplo para cargar una cadena con el tipo de caracteres que aparecen de verdad — espacios, signos «&», un correo, un signo de porcentaje. Entrada de ejemplo:

Ava Chen & friends? [email protected]  100% off!

Unicode y emojis funcionan sin problema — el codificador usa secuencias de bytes UTF-8, así que un nombre japonés o un emoji se codifica como una secuencia porcentual multibyte y se decodifica de vuelta limpiamente con cualquier decodificador conforme al estándar.

2

Lee la salida codificada

El panel derecho muestra la versión codificada en porcentaje. Los espacios pasan a %20, & a %26, ? a %3F, @ a %40, y % a %25. Se actualiza mientras escribes.

3

Copia o descarga

Haz clic en Copiar para llevar la cadena codificada al portapapeles, o en Descargar para guardarla como archivo .txt. Usa Limpiar en el panel de entrada para empezar de nuevo. Para hacer el camino inverso, pásate al Decodificador de URL.

Cuándo lo usarías de verdad

Construir un valor de query string a mano

¿Necesitas montar ?customer=Ava%20Chen&status=active para una prueba rápida con curl o un deep link? Codifica cada valor aquí y pégalo en tu URL. Olvidar codificar un valor con un & dentro (un nombre como «Smith & Co.») es el origen clásico del misterioso bug «la API solo ve la mitad de mi parámetro».

Codificar una URL de redirección

Los flujos OAuth y las redirecciones SSO pasan la URL de destino dentro de un parámetro de consulta (por ejemplo ?return_to=...). Esa URL de destino contiene a su vez :, /, ?, & — y cada uno tiene que ir codificado en porcentaje para que la URL externa siga bien formada. El RFC 6749 §3.1.2 lo dice de forma explícita para las URIs de redirección de OAuth.

Codificar un segmento de ruta con barra dentro

Si tu API REST tiene rutas como /repos/:owner/:name y el nombre contiene una barra (raro pero legal en algunos catálogos), la barra debe codificarse a %2F o el router la tratará como separador de ruta. Misma lógica para nombres de archivo con espacios o acentos en URLs de descarga.

Sanear entrada de usuario antes de meterla en una URL

Cualquier cadena que vaya a una URL desde un formulario HTML, una caja de búsqueda o un import CSV tiene que codificarse. Entrada de usuario sin codificar es justo cómo acabas con enlaces rotos, vectores de inyección de parámetros o URLs que funcionan para usuarios ASCII y fallan en silencio para todos los demás. Las notas de OWASP sobre path traversal son un buen recordatorio de lo que cuesta saltarse este paso.

Preguntas frecuentes

¿Uso encodeURIComponent o encodeURI?

Casi siempre encodeURIComponent — que es lo que usa esta página. Es la elección correcta para valores de parámetros de consulta, segmentos de ruta y cualquier sitio donde la cadena tenga que ser una «pieza» de una URL. encodeURI es para codificar una URL que ya está estructuralmente completa (poco común en la práctica — normalmente la estás construyendo por partes). La referencia de MDN enlazada arriba tiene la tabla completa de qué caracteres escapa cada una.

¿Por qué a veces se usa + para los espacios y otras veces %20?

Conviven dos tradiciones de codificación. application/x-www-form-urlencoded (el cuerpo ?clave=valor del envío de un formulario HTML) usa + para el espacio. La codificación porcentual general del RFC 3986 usa %20. encodeURIComponent siempre produce %20. La mayoría de los servidores aceptan cualquiera de los dos, pero si tu decodificador es estricto en formato form, sustituye con .replace(/%20/g, "+") después de codificar.

¿Maneja bien emojis y texto no ASCII?

Sí. El codificador serializa la entrada como UTF-8 primero y luego codifica en porcentaje cada byte. Por eso un emoji se convierte en una secuencia porcentual multibyte y cualquier decodificador conforme al estándar lo reconstruye sin pérdida. Si estás integrando con un sistema que usa Latin-1 u otra codificación heredada, tienes otro problema — cambia el sistema de origen, no improvises un codificador que no use UTF-8.

¿Qué caracteres NO codifica encodeURIComponent?

Las letras A-Z y a-z, los dígitos 0-9, y los caracteres no reservados - _ . ! ~ * ' ( ). Todo lo demás se codifica en porcentaje. La lista viene directamente de la especificación original y es fija en cualquier motor JavaScript moderno — consulta la especificación de ECMAScript para encodeURIComponent si quieres referencia exacta.

¿La entrada que pego se envía a algún sitio?

No. La codificación se ejecuta enteramente en tu navegador a través del motor JavaScript. No hay llamada de red, no hay servidor, no hay logs. Pega secretos, tokens, lo que sea sensible — no sale de tu máquina.

¿Qué tamaño de cadena puedo codificar aquí?

Hay un límite de 256 KB en la entrada. Los valores reales en URLs son, como mucho, de algunos kilobytes. Si necesitas codificar varios MB de datos, casi seguro que estás intentando meter un payload en una URL cuando deberías estar enviando un cuerpo por POST — codifícalo en el servidor y sáltate la ida y vuelta.

Otras herramientas de URL y codificación

Codificar es una operación. Esto es lo que encaja bien con ella: