Saltar al contenido

Codificador y decodificador de URL

URL Encoder & Decoder

Codifica y decodifica URLs y valores de consulta en porcentaje, con modo de componente y modo de URL completa.

Codifica en porcentaje y decodifica URLs, manteniendo separadas las cuatro reglas distintas que se llaman todas «codificación de URL»: `encodeURIComponent`, `encodeURI`, RFC 3986 estricto, y la codificación de formulario donde un espacio se convierte en `+`. Elegir la equivocada es lo que produce un enlace que funciona hasta que alguien escribe un `&`.

🔒 Se ejecuta por completo en tu navegadorurlencodedecodepercent
Reglas
Dirección
Alcance

Un valor de consulta, un segmento de ruta, un fragmento. `encodeURIComponent`: escapa `/ ? : @ & = + $ , #` y deja `A-Za-z0-9 - _ . ! ~ * ' ( )`.

Texto

Codificado

Entrada

0 caracteres

Salida

0 caracteres

Caracteres escapados

0

Cómo se usa

  1. Elige primero el alcance

    Componente para un valor de consulta o un segmento de ruta: ese es el caso común. URL completa solo para una URL que ya tienes y solo quieres limpiar; deja deliberadamente en paz `?`, `&` y `/`.

  2. Pega y lee la salida

    Los contadores bajo los paneles muestran cuántos caracteres se escaparon, que es una forma rápida de notar que elegiste un alcance que no hizo nada.

  3. Ajusta la codificación de bytes al decodificar una URL antigua

    Un enlace de un sitio en español de hace diez años codificaba en porcentaje bytes Latin-1 (ISO-8859-1 o Windows-1252), no UTF-8, y decodificarlo como UTF-8 produce símbolos raros donde había una tilde. El selector del modo decodificar tiene EUC-KR, Shift_JIS, GB18030 y la familia Latin-1.

  4. Edita la consulta como campos cuando hay muchos

    El interruptor «Editar como cadena de consulta» divide la URL en filas nombre/valor. Los valores se muestran decodificados y se escriben de vuelta codificados, así que una URL entera anidada dentro de un parámetro `next=` sobrevive a la edición.

Preguntas frecuentes

¿Cuál es la diferencia entre Componente y URL completa?

Componente escapa los delimitadores —`/ ? : @ & = +`— porque un *valor* que los contuviera rompería la URL en pedazos. URL completa los deja porque son la estructura. Usar URL completa sobre un valor es la manera estándar de construir un enlace que falla en cuanto el valor contiene un ampersand.

¿Por qué mi firma no verifica?

Probablemente porque `encodeURIComponent` deja en paz `! ' ( ) *` y RFC 3986 no. OAuth 1.0, AWS SigV4 y la mayoría de los otros esquemas de firma canonicalizan con la regla estricta, así que un valor que contiene un apóstrofo produce un hash distinto. Para eso está el alcance Estricto.

¿Qué significa la nota «codificado dos veces»?

Que decodificar el resultado otra vez produce algo distinto: un `%2520` donde se quería un `%20`. Normalmente significa que un valor pasó por un codificador en el cliente y otra vez en un proxy o un framework. Decodifica dos veces para obtener el original, y luego arregla la tubería.

¿Por qué un espacio es a veces `+` y a veces `%20`?

`+` pertenece a `application/x-www-form-urlencoded`: los cuerpos de un POST de formulario y lo que produce `URLSearchParams`. En cualquier otro sitio de una URL un espacio es `%20`, y un `+` significa un signo más literal. Mezclarlos convierte `a+b` en `a b` o al revés.

Puede recibir de

Después

Estas aceptan lo que produce esta herramienta, así que el resultado puede pasar directamente.