Codificador de URL Online

Codifica caracteres especiales en URLs

Prueba un ejemplo

Texto plano / URL

Codificado

Se ejecuta localmente · Es seguro pegar secretos
Salida codificada...
Modo:

¿Qué es la codificación de URL?

La codificación de URL (también llamada codificación por porcentaje) es un mecanismo para codificar información en un Identificador de Recursos Uniforme (URI) de modo que solo aparezcan en la cadena final los caracteres permitidos por RFC 3986. Cualquier carácter que no sea un carácter no reservado (A–Z, a–z, 0–9, -, _, ., ~) se reemplaza por un signo de porcentaje seguido de dos dígitos hexadecimales que representan el valor del byte UTF-8 del carácter — por ejemplo, un espacio se convierte en %20 y & en %26.

La codificación por porcentaje es necesaria porque las URLs solo pueden contener un conjunto limitado de caracteres ASCII. Cuando una URL incluye caracteres fuera de este conjunto — espacios, letras Unicode, símbolos como &, = o / usados como valores literales en lugar de delimitadores estructurales — esos caracteres deben codificarse para evitar que el analizador de URL los interprete mal. Esto es especialmente crítico para los valores de cadenas de consulta, donde & o = sin codificar romperían la estructura de parámetros.

¿Por qué usar esta herramienta?

Vea instantáneamente cómo se codifica su texto en ambos modos, con una comparación en vivo lado a lado — sin necesidad de escribir código para verificar casos límite.

Vista previa en vivo
La salida se actualiza mientras escribe. Pruebe diferentes entradas y vea instantáneamente qué caracteres se codifican y cuáles se preservan.
🔀
Dos modos
Cambie entre encodeURIComponent (para valores) y encodeURI (para URLs completas) sin salir de la página.
🔒
Solo en el cliente
Toda la codificación se ejecuta localmente en su navegador. Los parámetros de consulta y tokens sensibles nunca tocan un servidor.
📋
Copiar con un clic
Copie la salida codificada al portapapeles con un solo botón. Listo para pegar directamente en su código, terminal o barra de direcciones del navegador.

Cómo usar este codificador de URL en línea

Sin cuenta, sin instalación. Pega o escribe tu texto en el campo de entrada y el resultado codificado en porcentaje aparece al instante. Todo se ejecuta en tu navegador — tus datos nunca salen de tu dispositivo.

  1. 1
    Pega tu texto o URL
    Ingresa cualquier cadena — el valor de un parámetro de consulta, una URL completa, un segmento de ruta o un payload JSON. El codificador lo procesa carácter por carácter según RFC 3986.
  2. 2
    Elige el modo de codificación
    Selecciona encodeURIComponent para codificar valores de parámetros individuales (codifica todo excepto los caracteres no reservados). Selecciona encodeURI para codificar una URL completa preservando sus caracteres estructurales como ://?#&=.
  3. 3
    Copia la salida codificada
    La cadena codificada en porcentaje aparece al instante. Haz clic en Copiar para obtener el resultado y pegarlo directamente en tu llamada a la API, acción de formulario o archivo de configuración.
  4. 4
    Decodifica si es necesario
    ¿Cometiste un error o quieres verificar el resultado? Cambia a la herramienta Decodificador de URL con un solo clic para invertir la codificación.

¿Qué caracteres se codifican?

RFC 3986 divide los caracteres de URL en dos categorías: caracteres no reservados (nunca codificados) y caracteres reservados (tienen significado especial — codificados o preservados según el contexto). La tabla muestra cómo tratan los caracteres clave las dos funciones JavaScript:

Car.Significado en URLencodeURIComponentencodeURI
Spaceword separator%20%20
+plus sign%2B%2B
/path separator%2F/ (kept)
?query start%3F? (kept)
#fragment%23# (kept)
&param separator%26& (kept)
=param value%3D= (kept)
@auth separator%40@ (kept)
:scheme / port%3A: (kept)
%percent literal%25%25
~unreserved~ (kept)~ (kept)
-_.~unreserved setkept as-iskept as-is

encodeURIComponent vs encodeURI

JavaScript proporciona dos funciones de codificación con comportamiento muy diferente. Elegir la incorrecta es uno de los errores más comunes en el manejo de URLs:

encodeURIComponent()
Codifica todo excepto el conjunto de caracteres no reservados (A–Z a–z 0–9 - _ . ~). Es la opción correcta para codificar valores individuales de parámetros de consulta, segmentos de ruta o cualquier valor que se incrustará dentro de una URL. Codificará /, ?, # y & y todos los demás caracteres reservados.
encodeURI()
Preserva toda la estructura de la URL dejando sin codificar los caracteres reservados (: / ? # [ ] @ ! $ & ' ( ) * + , ; =). Úsela solo cuando tenga una URL completa con estructura que desee preservar, y solo necesite codificar los caracteres no ASCII o ilegales dentro de ella.

Casos de uso comunes

Parámetros de cadena de consulta
Codifique los valores de los parámetros antes de agregarlos a una URL: name=John%20Doe en lugar de name=John Doe. Los espacios y caracteres especiales sin codificar romperán los analizadores de URL y producirán resultados inesperados.
Construcción de solicitudes API
Las APIs REST requieren parámetros de consulta correctamente codificados. Codificar valores con encodeURIComponent evita la inyección de parámetros adicionales mediante caracteres como & y = incrustados en los valores.
Envío de datos de formulario
Los formularios HTML envían datos como application/x-www-form-urlencoded por defecto. Comprender la codificación por porcentaje ayuda a depurar lo que envía el navegador y lo que recibe el servidor.
Segmentos de ruta con caracteres especiales
Los nombres de archivo o identificadores que contienen espacios, barras u caracteres unicode deben codificarse por porcentaje cuando se usan como segmentos de ruta de URL: /files/my%20document.pdf.
OAuth y tokens de autenticación
OAuth 1.0a y algunos protocolos de autenticación requieren que la cadena base se construya a partir de nombres y valores de parámetros codificados por porcentaje siguiendo un estricto algoritmo de normalización.
Deep links y URLs para compartir
Al generar URLs compartibles que incorporan contenido del usuario (consultas de búsqueda, estado de filtros, coordenadas), codifique todos los valores dinámicos para evitar enlaces rotos y XSS mediante manipulación de URL.

Ejemplos de código

Cómo codificar cadenas URL en lenguajes y entornos populares:

JavaScript (browser / Node.js)
// Encode a query parameter value (most common case)
encodeURIComponent('hello world & more') // → "hello%20world%20%26%20more"

// Encode a complete URL (preserves ://?#& structure)
encodeURI('https://example.com/path?q=hello world') // → "https://example.com/path?q=hello%20world"

// Build a query string safely
const params = new URLSearchParams({ q: 'hello world', lang: 'en' })
const url = `https://example.com/search?${params}` // uses + for spaces
Python
from urllib.parse import quote, urlencode, quote_plus

# Encode a path segment or query value
quote('hello world & more')          # → 'hello%20world%20%26%20more'

# Encode for application/x-www-form-urlencoded (space → +)
quote_plus('hello world')            # → 'hello+world'

# Build a query string
urlencode({'q': 'hello world', 'lang': 'en'})  # → 'q=hello+world&lang=en'
Node.js (URL API)
const url = new URL('https://example.com/search')
url.searchParams.set('q', 'hello world & more')
url.searchParams.set('lang', 'en')
console.log(url.toString())
// → https://example.com/search?q=hello+world+%26+more&lang=en
CLI (curl / bash)
# curl automatically percent-encodes --data fields
curl -G "https://example.com/search" --data-urlencode "q=hello world & more"

# Manual encoding with Python one-liner
python3 -c "from urllib.parse import quote; print(quote('hello world'))"

Codificador de URL vs. alternativas

Varias herramientas pueden codificar texto en porcentaje, pero difieren en control, privacidad y contexto.

Esta herramienta
Basada en navegador, instantánea y privada. Compatible con los modos encodeURIComponent y encodeURI. No se envían datos a ningún servidor. Maneja entrada Unicode completa.
Barra de direcciones del navegador
Los navegadores codifican URLs automáticamente al pegarlas, pero solo parcialmente — preservan muchos caracteres especiales por legibilidad. No es adecuado para codificar valores de parámetros.
URLSearchParams / urllib
El enfoque programático correcto para construir URLs en JavaScript o Python. Usa esta herramienta para codificaciones rápidas o para verificar lo que producirá tu código.

Preguntas frecuentes

¿Cuál es la diferencia entre %20 y + para los espacios?
Ambos representan un espacio, pero en contextos diferentes. %20 es la representación estándar de un espacio codificado por porcentaje y es válida en cualquier parte de una URL. El signo + representa un espacio solo en el formato application/x-www-form-urlencoded (envíos de formularios HTML). En una ruta de URL o un valor de consulta sin procesar, + es un signo más literal, no un espacio. Use %20 para máxima compatibilidad.
¿Cuándo debo usar encodeURIComponent vs encodeURI?
Use encodeURIComponent para valores individuales (parámetros de consulta, segmentos de ruta, fragmentos hash). Use encodeURI solo cuando tenga una URL completa y desee preservar su estructura. Un error común es usar encodeURI en un valor de consulta — dejará & y = sin codificar, rompiendo la cadena de consulta.
¿La codificación de URL maneja caracteres Unicode?
Sí. Los caracteres no ASCII se convierten primero a su representación de bytes UTF-8, luego cada byte se codifica por porcentaje. Por ejemplo, el signo del euro (U+20AC) se codifica como %E2%82%AC — sus tres bytes UTF-8. Tanto encodeURIComponent como encodeURI manejan esto correctamente en todos los navegadores modernos.
¿La doble codificación es un problema?
Sí. Si codifica una cadena ya codificada, %20 se convierte en %2520 (el % mismo se codifica como %25). Siempre codifique valores sin procesar, no los ya codificados. En caso de duda, decodifique primero y luego vuelva a codificar.
¿Qué caracteres son siempre seguros en las URLs?
Los caracteres no reservados definidos por RFC 3986 son siempre seguros y nunca necesitan codificación: mayúsculas A–Z, minúsculas a–z, dígitos 0–9, guion (-), guion bajo (_), punto (.) y tilde (~). Todo lo demás debe codificarse por porcentaje cuando se usa como valor en lugar de como delimitador estructural.
¿Por qué algunas URLs contienen hex en mayúsculas (%2F) y otras en minúsculas (%2f)?
Ambas son válidas. RFC 3986 especifica que las secuencias codificadas por porcentaje no distinguen entre mayúsculas y minúsculas, por lo que %2F y %2f son equivalentes. Sin embargo, el mismo RFC recomienda usar dígitos hexadecimales en mayúsculas para consistencia. La mayoría de los navegadores y bibliotecas producen mayúsculas.
¿Esta herramienta codifica la URL completa o solo los parámetros?
Ambas. Usa el modo encodeURIComponent para codificar valores de parámetros de consulta individuales (el caso de uso más común). Usa el modo encodeURI para codificar una URL completa preservando sus caracteres estructurales como ://, ?, # y &.
¿Hay un límite de longitud para la codificación?
Sin límite del lado del servidor — la herramienta se ejecuta completamente en tu navegador. Los límites prácticos dependen de la memoria de tu navegador. Para entradas muy grandes o procesamiento por lotes, usa encodeURIComponent en un script.