KeroTools

Codificador y Decodificador de URL

Codifica una URL por porcentaje o decodifícala para que funcione bien en consultas y formularios — al instante.

Entrada
0 caracteres
Salida

Tu texto se queda en tu equipo

Nada que borrar después

Seguro para URLs con tokens

Funciona en todo navegador moderno

Cómo funciona

  1. 1

    Pega tu texto o URL

    Un valor de parámetro para codificar, o una cadena con porcentajes para leerla de vuelta.

  2. 2

    Elige adónde va

    Una URL entera, o un único componente que va dentro de una: las reglas cambian.

  3. 3

    Copia el resultado

    Llévalo a un enlace, una petición, un destino de redirección o un valor de configuración.

Por qué usar esta herramienta

Modos de componente y de URL completa

Codifica el valor de un parámetro o una dirección entera: necesitan reglas distintas, y mezclarlas es el fallo habitual.

El espacio se trata de forma explícita

Elige `%20` o `+`, porque una cadena de consulta y un segmento de ruta no coinciden en cuál significa espacio.

Doble codificación evitada

La entrada ya codificada se reconoce, así que `%20` no se convierte en silencio en `%2520`.

UTF-8 hecho como es debido

Los caracteres árabes, turcos y con tilde se vuelven las secuencias de bytes correctas y no una salida destrozada.

No se sube nada

La conversión ocurre en tu navegador: una URL con un token de sesión nunca llega a un servidor.

Gratis y sin cuenta

Sin registro, sin marca de agua y sin límite de cuánto conviertas.

No existe una sola «codificación de URL»: hay dos, y no se ponen de acuerdo

Este es el hecho que resuelve casi toda la confusión en torno a esta tarea. Codificar una URL entera y codificar una pieza que va dentro de una URL son operaciones distintas con reglas distintas, y usar la equivocada es la forma más común de romper un enlace. Una dirección completa necesita que sus `/`, `?`, `&`, `#` y `:` se dejen en paz, porque es la puntuación que le da forma. Un valor suelto —un término de búsqueda, un destino de redirección, un nombre de archivo en un parámetro— necesita justamente que esos caracteres se escapen, porque dentro de un valor son datos y no estructura. Codifica una URL entera con reglas de componente y obtienes una cadena inservible de `%2F` y `%3A`. Codifica un componente con reglas de URL completa y una barra en tu valor se convierte en silencio en un separador de ruta. Decide cuál de las dos estás haciendo antes de empezar.

El punto de la dirección en que estás decide qué hay que escapar

Se deduce de lo anterior, y conviene decirlo directamente porque explica los casos que parecen incoherentes. Una barra dentro de una ruta es un separador y debe seguir siendo una barra; una barra dentro del valor de un parámetro es solo un carácter y puede quedarse, aunque escaparla es más seguro. Un signo de interrogación en la ruta abre la cadena de consulta; ese mismo carácter dentro del valor de un parámetro debe ser `%3F` o todo lo que venga después se leerá como más parámetros. El ampersand dentro de un valor es el caso más afilado: déjalo en crudo y el valor se parte en dos, así que una búsqueda de «R&D» llega como un parámetro llamado `D`. La regla que hay que llevarse es que los caracteres reservados solo están reservados donde pueden cumplir su función, y dentro de un valor no pueden: por eso justamente allí hay que escaparlos.

El signo más significa dos cosas distintas, y ambas son correctas

El espacio es el carácter que todo el mundo encuentra primero y el de historia más enredada. La codificación en porcentaje dice que un espacio es `%20`, y en un segmento de ruta esa es la única respuesta correcta: un `+` literal en una ruta es un signo más y nada más. Pero el envío de formularios HTML definió su propia codificación para las cadenas de consulta, en la que un espacio es `+` y un más literal debe escribirse `%2B`. Las dos convenciones siguen vivas, ambas son correctas en su contexto, y los decodificadores las tratan distinto: uno en modo cadena de consulta convierte `+` en espacio y uno en modo ruta lo deja tal cual. Por eso un valor con un más —un teléfono en formato internacional, un correo con etiqueta como `nombre+trabajo@ejemplo.com`— llega tantas veces con el más sustituido por un espacio. Si tu valor puede llevar un más literal, escápalo como `%2B` y deja de depender de qué convención eligió el receptor.

La doble codificación es el fallo con el que de verdad te vas a topar

Como `%` abre una secuencia de escape, el propio signo de porcentaje tiene que codificarse, como `%25`. Esa única regla crea el fallo más común de toda esta área. Codifica una cadena dos veces y `%20` se convierte en `%2520`, porque el `%` del primer resultado lo escapa la segunda pasada. El resultado se decodifica una vez en `%20` —visible, literal, en medio de tu valor— en lugar de en un espacio. Esto ocurre constantemente: una URL la codifica una aplicación y luego la vuelve a codificar un framework, un manejador de redirecciones o un rastreador de enlaces que da por hecho que recibió texto en crudo. El síntoma es un enlace que funciona en un sitio y muestra `%2520` o `%253A` en otro. Cuando veas un `25` delante de otra secuencia de escape, estás ante una doble codificación, y el arreglo es quitar un paso, no decodificar dos veces.

Los caracteres fuera de ASCII se codifican como bytes, no como caracteres

La codificación en porcentaje no tiene concepto de letra. Escapa bytes, lo que significa que cualquier carácter fuera de ASCII debe convertirse antes en bytes, y el estándar para eso es UTF-8. Por eso una sola letra árabe se convierte en tres secuencias de escape y un emoji en cuatro: estás viendo sus bytes UTF-8 escritos uno a uno. La consecuencia que conviene saber es que un codificador con otro juego de caracteres produce una salida distinta para la misma entrada, y así es como una URL con un nombre dentro funciona en un sistema y devuelve un 404 en otro. Hay además un segundo mecanismo que la gente confunde con este: un nombre de dominio fuera de ASCII no se codifica en porcentaje en absoluto, sino que se convierte a Punycode, un esquema completamente aparte que produce los prefijos `xn--` que a veces se ven. Ruta y consulta usan porcentaje; el host no.

Por qué codificar en local importa con este tipo de texto

Piensa en las URLs que la gente pega en un codificador. Es una dirección de retorno con un token de sesión en la cadena de consulta. Es un enlace firmado con un parámetro de firma que caduca. Es una URL de restablecimiento de contraseña que alguien está depurando, un endpoint de webhook con un secreto compartido, una dirección interna de administración que revela un nombre de host. Las URLs llevan credenciales en sus cadenas de consulta mucho más a menudo de lo que se nota, precisamente porque una cadena de consulta parece configuración y no un secreto. Pegar una en un codificador alojado manda todo a un tercero, y si esa URL contiene un token en funcionamiento acabas de compartir una credencial viva. Esta herramienta convierte dentro de la página y no transmite nada, y puedes comprobarlo en la pestaña Red de las herramientas de desarrollo.

Errores comunes que conviene evitar

  • Codificar una URL entera con reglas de componente. Los `/` y `:` se vuelven `%2F` y `%3A` y la dirección deja de ser una dirección: las URLs completas y los valores dentro de ellas piden reglas distintas.
  • Dejar un ampersand en crudo dentro del valor de un parámetro. Parte el valor en dos, así que una búsqueda de «R&D» llega como un parámetro extra llamado `D`; escápalo como `%26`.
  • Suponer que `+` siempre significa espacio. Lo significa en una cadena de consulta y no en una ruta, así que un más literal en un teléfono o en un correo con etiqueta debe escribirse `%2B` sea cual sea el contexto.
  • Codificar algo que ya estaba codificado. El `%` se escapa como `%25`, así que `%20` pasa a `%2520` y se decodifica en texto visible en vez de un espacio: quita un paso, no decodifiques dos veces.
  • Pegar una URL de retorno o de restablecimiento en un codificador alojado. Las cadenas de consulta llevan tokens de sesión y firmas mucho más a menudo de lo que se nota; codifica en local.

Comparativa

AspectoEsta herramientaCodificadores onlineLa consola del navegador
Contenido enviado a un servidorNuncaNormalmente síNo
Modos componente y URL completaAmbos, explícitosA menudo solo unoDos funciones distintas
Convención de espacio elegibleRara vezNo
Doble codificación detectadaRara vezNo
Cuenta o registroNo hace faltaA menudo exigidoNo hace falta
PrecioGratisGratis / planes de pagoGratis

Características

Codificar y decodificar

Los dos sentidos en un solo sitio, con entrada y salida una al lado de la otra.

URL completa frente a componente

La primera conserva `/`, `?` y `&`; el segundo los escapa, porque dentro de un valor son datos.

Espacio como `%20` o `+`

Ajústate a la convención del contexto por el que viaja el valor.

Secuencias de bytes UTF-8 correctas

Los caracteres fuera de ASCII se codifican byte a byte, como exige el estándar.

Aguanta entradas largas

Cadenas de consulta enteras y cadenas de redirección largas se convierten sin tope de tamaño.

Entrada malformada señalada

Un `%` suelto o una secuencia de escape incompleta se informa en vez de descartarse en silencio.

Nada que instalar

Sin consola, sin entorno de ejecución, sin dependencias: funciona en la página web.

Listo para árabe y RTL

Interfaz completa en ocho idiomas, incluido el árabe de derecha a izquierda.

Seguro por defecto

Servido por HTTPS, sin rastreo de contenido ni subida a terceros.

Quién la usa

Desarrolladores

Construir un parámetro de consulta que sobreviva a lo que sea que le haga el sistema receptor.

Integradores de API

Codificar un destino de redirección o una dirección de retorno sin romper la URL que lo contiene.

Equipos de marketing

Hacer seguros los parámetros de campaña cuando el valor lleva espacios, ampersands o texto no latino.

Ingenieros de soporte

Leer de vuelta un enlace enviado por un cliente para ver qué dicen realmente los parámetros.

Preguntas Frecuentes

No. Todo se ejecuta localmente en tu navegador — tu texto nunca se sube, guarda ni comparte.

Sí — totalmente gratis, sin cuenta y sin límites.