Codificar una búsqueda
hello world & more
hello%20world%20%26%20more
Los espacios pasan a %20, y el & se convierte en %26 para que no se confunda con un separador de parámetros.
Codifica y decodifica componentes de URL de forma segura.
Última actualización
Un codificador de URL (también llamado percent-encoder o codificador URI) reemplaza los caracteres reservados o no seguros en URLs por % seguido de dos dígitos hexadecimales. Lo usamos al construir query strings, escapar segmentos de ruta, compartir URLs con espacios o caracteres no ASCII, y al depurar redirecciones.
Las URLs solo admiten un conjunto reducido de caracteres ASCII. Todo lo que quede fuera —espacios, tildes, emojis o símbolos reservados como ?, #, &, = cuando se usan como datos— tiene que codificarse en porcentaje para que llegue intacto del navegador al servidor.
JavaScript trae dos funciones de codificación: encodeURI (respeta la estructura de la URL: /, ?, #, &) y encodeURIComponent (codifica todo lo reservado). Usa encodeURIComponent para los *valores* que metes en una query string, y encodeURI para *URLs completas* que quieras conservar funcionales.
% más dos dígitos hexadecimales — por ejemplo, un espacio se convierte en %20.: / ? # & = +) tienen un significado dentro de la estructura de una URL. Hay que codificarlos cuando se usan como datos, no como separadores.Pulsa Codificar si tienes texto en bruto y lo quieres dejar URL-safe. Pulsa Decodificar si tienes una cadena con % y quieres recuperar el texto original.
Selecciona encodeURIComponent (codifica todo lo reservado) para valores de query string; selecciona encodeURI (mantiene la estructura) para URLs completas.
Pega el texto en bruto o la URL ya codificada. Admite varias líneas, así que puedes decodificar en lote.
Copia el valor codificado o decodificado. La conversión se ejecuta localmente en tu navegador, así que cualquier dato sensible que vaya en la URL se queda en tu máquina.
Los caracteres que verás codificados con más frecuencia, junto con su forma en porcentaje. La semántica de los caracteres reservados viene del RFC 3986.
| Carácter | Codificado | Por qué |
|---|---|---|
| espacio | %20 | Los espacios no se permiten en URLs |
! | %21 | Algunos servidores lo reservan |
# | %23 | Marca el inicio del fragmento |
$ | %24 | Carácter reservado |
& | %26 | Separa parámetros de la query |
+ | %2B | Significa espacio en cuerpos form-encoded |
/ | %2F | Separador de rutas |
: | %3A | Separa esquema y host |
= | %3D | Separa clave de valor en la query string |
? | %3F | Marca el inicio de la query string |
@ | %40 | Separa userinfo y host |
| byte UTF-8 | %C3%A9 | Cada byte no ASCII se codifica por separado |
hello world & more
hello%20world%20%26%20more
Los espacios pasan a %20, y el & se convierte en %26 para que no se confunda con un separador de parámetros.
café
caf%C3%A9
La é en UTF-8 son los bytes 0xC3 0xA9, así que el resultado lleva *dos* grupos %XX para ese único carácter.
https://example.com/path?q=hello world
https://example.com/path?q=hello%20world
https%3A%2F%2Fexample.com%2Fpath%3Fq%3Dhello%20world
encodeURI deja intacta la estructura de la URL (las barras, ?, =). encodeURIComponent codifica todo lo reservado — úsala en los valores que metes dentro de una query string, nunca sobre una URL entera.
encodeURI para valores de query string — el & y el = sobreviven a la codificación y rompen el parseo de parámetros.%2520 en lugar de %20 es la señal clásica de un bug de doble codificación.+ significa espacio en cuerpos application/x-www-form-urlencoded, pero es un + literal en la ruta o en la query string.% seguido de dos dígitos hexadecimales.encodeURI respeta los caracteres estructurales de la URL (/, ?, #, &, =, +). encodeURIComponent los codifica todos, que es justo lo que quieres para los *valores* individuales que vas a meter dentro de una URL — valores de parámetros de query, segmentos de ruta o fragmentos. Consulta las referencias de MDN para encodeURI y encodeURIComponent.%20?%20, la codificación porcentual del carácter espacio en ASCII (0x20 en hexadecimal).decodeURI, decodeURIComponent o cualquier decodificador de URL deshacen la codificación porcentual y devuelven los caracteres originales.