Subir un archivo
  1. base64hub
  2. Herramientas web y de tokens
  3. Codificar URL

Codificador de URL (codificación por porcentajes)

Pega texto o una URL y obtenlo codificado por porcentajes. Elige Componente para un valor de consulta o un segmento de ruta, URL completa para arreglar una dirección entera o Datos de formulario para cuerpos application/x-www-form-urlencoded.

Gratis sin registro, sin límites Local no se sube nada 4 modos componente, URL completa, datos de formulario, todos los caracteres Actualizado 27 oct 2026
Entrada 0Salida 0

Se procesa en tu navegador. Esta página no puede enviar tus datos a ninguna parte – cómo lo sabemos

Cómo codificar una cadena para URL

  1. Escribe o pega el texto en Texto o URL. La salida se actualiza mientras escribes.
  2. Elige el modo en Codificar:
    • Componente (encodeURIComponent) para un valor de consulta, un campo de formulario o un segmento de ruta.
    • URL completa (encodeURI) para una URL completa que contiene espacios o caracteres no ASCII.
    • Datos de formulario (espacio como +) para cuerpos application/x-www-form-urlencoded y query strings construidas como lo hacen los formularios HTML.
    • Todos los caracteres para codificar por porcentajes todos los bytes, letras incluidas, y así probar decodificadores.
  3. Deja Juego de caracteres en UTF-8 salvo que el sistema receptor espere una codificación antigua.
  4. Marca Cada línea por separado para codificar una lista de valores de una vez y después pulsa Copiar salida. Intercambiar envía el resultado al decodificador para comprobar el viaje de ida y vuelta.

Una URL completa en la entrada también se divide en esquema, host, ruta, cada parámetro de consulta y el fragmento, en una tabla bajo los paneles.

encodeURIComponent frente a encodeURI frente a codificación de formulario

La misma entrada, a b&c=d/é?#+, en los tres estilos habituales:

ModoSalidaPara qué sirve
Componente (encodeURIComponent)a%20b%26c%3Dd%2F%C3%A9%3F%23%2Bun único valor dentro de una URL
URL completa (encodeURI)a%20b&c=d/%C3%A9?#+una URL entera que ya está bien estructurada
Datos de formulario (URLSearchParams)a+b%26c%3Dd%2F%C3%A9%3F%23%2Benvíos de formularios HTML, muchas bibliotecas de query strings

Componente solo deja sin escapar A–Z a–z 0–9 - _ . ! ~ * ' ( ). URL completa conserva además ; / ? : @ & = + $ , #, los caracteres que dan estructura a una URL, así que no puede proteger un valor que los contenga. Datos de formulario solo conserva letras, dígitos y - _ . *, y escribe los espacios como +.

El error clásico es construir una URL con la codificación URL completa: ?q=C++ & Go conserva el + y el &, y el servidor recibe q=C más un parámetro suelto. Codifica el valor con Componente: ?q=C%2B%2B%20%26%20Go.

Espacios, signos más y otros alborotadores

CarácterCodificadoPor qué importa
espacio%20 o ++ solo significa espacio en query strings y cuerpos de formulario
+%2Bsin codificar, muchos servidores lo convierten en espacio: +49 30 1234567 pasa a ser 49 30 1234567
&%26inicia un nuevo parámetro de consulta
=%3Dsepara nombre y valor; el Base64 estándar termina con él
/%2Fsepara segmentos de ruta; algunos servidores rechazan %2F en las rutas
#%23inicia el fragmento, que nunca se envía al servidor
%%25también hay que codificarlo, o el decodificador lee un escape roto
€%E2%82%ACtres bytes UTF-8, tres escapes

El Base64 en una URL es un caso habitual del problema de +, / y =. Codifícalo por porcentajes como componente o pasa a Base64URL, que evita esos caracteres.

Juegos de caracteres distintos de UTF-8

La codificación por porcentajes trabaja con bytes, así que el juego de caracteres decide el resultado. é es %C3%A9 en UTF-8 y %E9 en Windows-1252 o ISO-8859-1. Los navegadores y las API modernas usan UTF-8, pero las aplicaciones PHP antiguas, algunas pasarelas de pago y sistemas de intranet heredados todavía esperan Latin-1 o Windows-1252, y los sitios japoneses a veces Shift_JIS. Elige el que corresponda en Juego de caracteres. Un carácter que no existe en el juego elegido no se puede representar, así que revisa la salida por si aparece alguno.

Codificar URL en código

encodeURIComponent("a b&c")              // "a%20b%26c"
new URLSearchParams({ q: "C++ & Go" }).toString()   // "q=C%2B%2B+%26+Go"
from urllib.parse import quote, quote_plus, urlencode
quote("/files/a b.txt")            # '/files/a%20b.txt'  (keeps / by default)
quote("/files/a b.txt", safe="")   # '%2Ffiles%2Fa%20b.txt'
quote_plus("a b&c")                # 'a+b%26c'
urlencode({"q": "C++ & Go"})       # 'q=C%2B%2B+%26+Go'

quote de Python conserva / salvo que le pases safe="", una sorpresa frecuente al codificar un valor. En otros lenguajes: rawurlencode de PHP da %20 y urlencode da +; URLEncoder.encode de Java es codificación de formulario con +; Go tiene url.PathEscape (%20) y url.QueryEscape (+). encodeURIComponent no toca ! ' ( ) *; para una salida estricta según RFC 3986, sustitúyelos después:

const strict = s => encodeURIComponent(s).replace(/[!'()*]/g,
  c => "%" + c.charCodeAt(0).toString(16).toUpperCase());

Hay más sobre la parte de JavaScript en la página de Base64 en JavaScript. Para deshacer todo esto, usa el decodificador de URL.

Preguntas frecuentes

¿Qué es la codificación URL?

La codificación URL, o codificación por porcentajes, sustituye los caracteres que no están permitidos o tienen un significado especial en una URL por % y dos dígitos hex de cada byte. Un espacio pasa a ser %20, & pasa a ser %26 y é en UTF-8 pasa a ser %C3%A9.

¿Cómo codifico un espacio en una URL: %20 o +?

%20 funciona en todas partes. + solo significa espacio en las query strings y los cuerpos de formulario que siguen la convención de codificación de formularios; en una ruta es un más literal. Si dudas, usa %20.

¿Debo codificar la URL entera?

No, codifica cada valor antes de insertarlo. Codificar una URL entera con Componente también escapa :, /, ? y &, y la rompe. El modo URL completa conserva esos caracteres estructurales y solo arregla los espacios y el texto no ASCII.

¿Por qué mi cadena codificada contiene %25?

%25 es un signo de porcentaje codificado, lo que significa que la entrada ya estaba codificada y se codificó una segunda vez: a%20b se convierte en a%2520b. Codifica el texto original exactamente una vez.

¿Hex en mayúsculas o en minúsculas en la codificación por porcentajes?

RFC 3986 trata %2F y %2f como iguales y recomienda mayúsculas. Marca Hex en minúsculas solo para coincidir con un sistema que las genera en minúsculas, por ejemplo al comparar firmas.