Codificación

URL Encode/Decode

Codificación y decodificación de URL — caracteres que deben escaparse en enlaces y parámetros de consulta.

URL encoding (percent-encoding) replaces characters that aren't allowed in a URL — spaces, non-Latin letters, special characters — with %XX sequences, where XX is the hex code of the byte. This keeps links and query parameters from getting mangled in transit.

How to use it

Common uses

Things to keep in mind

Encode parameter values, not the whole URL at once — otherwise you'll also encode the separators you need (:, /, ?, &).

JavaScript's encodeURIComponent and encodeURI encode different character sets — the former is meant specifically for parameter values.

Artículo sobre esta herramienta: URL Encode/Decode: el percent-encoding en los enlaces

Preguntas frecuentes

¿Qué diferencia hay entre "Componente" y "URI" en el tipo de codificación?

El modo Componente (equivalente a encodeURIComponent) escapa prácticamente todos los caracteres especiales, ideal para valores de parámetros de consulta. El modo URI (equivalente a encodeURI) respeta caracteres reservados como :, /, ? y &, pensado para codificar una URL completa sin romper su estructura.

¿Es lo mismo el URL encoding que Base64 URL-safe?

No, son cosas distintas que suelen confundirse. El URL encoding (percent-encoding) sustituye caracteres especiales por secuencias %XX, mientras que Base64 URL-safe es una variante de Base64 que cambia + y / por - y _ para poder usarse dentro de una URL.

¿Se envía la URL o el texto a algún servidor?

No, la codificación y decodificación se realizan enteramente en tu navegador con JavaScript, sin transmitir nada a un servidor.

¿Qué es la doble codificación y cómo se reconoce?

Es un error que ocurre cuando una cadena ya codificada se vuelve a codificar: el carácter % se convierte en %25, y %20 pasa a ser %2520. La señal del problema son secuencias del tipo %25XX en el resultado decodificado.

¿Por qué el espacio a veces se codifica como + y otras como %20?

El + para el espacio es el formato application/x-www-form-urlencoded, usado por formularios y query strings. %20 es el percent-encoding estándar de la RFC 3986, válido en cualquier parte de la URL.

Artículos: Codificación

Base64: para qué sirve la codificación y cómo funciona

Cómo Base64 convierte datos binarios en texto ASCII y cuándo esto realmente hace falta.

Base32: en qué se diferencia de Base64 y cuándo es más práctico

El alfabeto de Base32, que no distingue mayúsculas, y los casos donde resulta más práctico que Base64.

HTML Entities: cómo mostrar caracteres especiales de forma segura

Por qué hay que escapar los caracteres < > & y cómo esto evita que el marcado se rompa.

JWT: la estructura del token y qué significa "decodificar" un JWT

El header, el payload y la signature de un token JWT, y por qué decodificar no es lo mismo que verificar la firma.

Unicode Escape: qué significan las secuencias \uXXXX

De dónde salen las secuencias tipo \u0041 en JSON y cadenas JS, y qué significan.

ROT13 y el cifrado César: sustitución simple de caracteres

Por qué un desplazamiento de 13 letras hace que ROT13 sea su propio inverso, y por qué se sigue usando hoy.

Punycode: cómo funcionan los dominios internacionalizados en el DNS

Cómo un dominio con caracteres no latinos se convierte en una representación ASCII con el prefijo xn--.

Código Morse: cómo el texto se convierte en puntos y rayas

El principio de codificar letras con puntos y rayas, y dónde se usa el código Morse hoy en día.

Data URI: cuándo incrustar imágenes directamente en el código

Cómo un Data URI incrusta el contenido de un archivo directamente en HTML o CSS, y cuándo vale la pena.

Gzip + Base64: comprimir datos para transmitirlos como texto

Por qué los datos binarios comprimidos también se codifican en Base64 antes de meterlos en un campo de texto.

XML Entities: escapar caracteres en documentos XML

Las cinco entidades XML obligatorias sin las cuales el documento se rompe al analizarlo.