Codificar / Decodificar URL
Codifica en porcentaje un texto para usarlo con seguridad en una URL, o decodifica una URL codificada de vuelta a texto legible — ambos sentidos, en vivo mientras escribes.
1.046 visitas
No se pudo decodificar — secuencia de codificación en porcentaje no válida.
Cómo Funciona
Una URL solo puede transportar con seguridad un alfabeto pequeño: letras, dígitos y los cuatro símbolos "no reservados" - _ . ~. Todo lo demás se reescribe como un triplete %XX, donde XX es el valor hexadecimal del byte del carácter — esto es la codificación en porcentaje de RFC 3986. Los caracteres que estructuran una URL (? # / : @ & =, el conjunto "reservado") también se codifican cuando aparecen dentro de un valor en lugar de como delimitadores, ya que un & literal dentro de un valor de consulta se leería como el inicio del siguiente parámetro.
El texto no ASCII se codifica byte a byte, no carácter a carácter: la herramienta convierte primero tu cadena a UTF-8 y luego codifica en hexadecimal cada byte resultante. La letra turca "ç" ocupa dos bytes en UTF-8 (0xC3 0xA7), por lo que se convierte en dos bloques de porcentaje, %C3%A7 — no en un único código. Un ejemplo concreto: codificar İstanbul çayı & simit produce %C4%B0stanbul%20%C3%A7ay%C4%B1%20%26%20simit. Observa que el espacio se convierte en %20, el carácter reservado & se convierte en %26, y cada letra acentuada se expande en su propia secuencia de varios bytes.
En la práctica, esta distinción importa sobre todo al montar solicitudes a mano: pegar la URL de un webhook con un valor de consulta que alguien te envió, decodificar un parámetro de seguimiento de un correo de marketing, o averiguar por qué falla una llamada a una API porque un & o # sin codificar se coló en un valor y se leyó como delimitador en lugar de como dato. Codificar primero el valor y luego sustituir el resultado en la plantilla de la URL evita justo ese tipo de error.
Qué Debes Saber
- %20 frente a +: la codificación en porcentaje de RFC 3986 siempre usa
%20para un espacio. La convención+pertenece a un estándar diferente y más antiguo —application/x-www-form-urlencoded, usado cuando un formulario HTML envía datos — y solo se aplica dentro de ese formato de cuerpo específico, nunca dentro de una ruta o un valor de consulta correctamente codificado en porcentaje. Confundir ambos es una fuente clásica de errores: un servidor que espera codificación de formulario interpreta un+suelto en una cadena codificada en porcentaje como un signo más literal, no como un espacio. - Codifica un componente, no toda la URL: esta herramienta está pensada para un único valor de consulta o segmento de ruta. Pasar la dirección completa (incluyendo
https://) por el codificador también escaparía las barras y los dos puntos que hacen que sea una URL válida, rompiéndola por completo. - El mismo motor que tu navegador: llama a las funciones nativas
encodeURIComponent/decodeURIComponentdel navegador, por lo que los resultados coinciden exactamente con lo que produciría un navegador real o una llamadafetchde JavaScript — no es una aproximación. - El ciclo completo no pierde datos: codificar una cadena y luego decodificar el resultado siempre devuelve exactamente los bytes originales, lo que facilita verificar una codificación manual decodificándola de nuevo y comparándola con el texto de origen.
- Nada sale de tu navegador: la codificación y decodificación se ejecutan completamente en el cliente, al instante, sin ninguna subida.
Preguntas Frecuentes
¿Por qué un espacio se convierte en %20 y no en +?
La codificación en porcentaje (RFC 3986) usa %20 para un espacio; la convención + es específica del formato más antiguo application/x-www-form-urlencoded usado en los cuerpos de formularios, no de la codificación general de URL. Esta herramienta usa la forma estándar %20 — confundir ambas es una fuente común de errores al construir cadenas de consulta a mano.
¿Codifica la URL completa o solo una parte?
Está diseñada para codificar un único componente (un valor de consulta, un segmento de ruta) — codificar una URL completa incluyendo "https://" también escaparía las barras y la rompería, así que codifica solo la parte que lo necesita y luego pega ese fragmento de vuelta en el resto de la dirección.
¿Por qué los caracteres turcos o acentuados se convierten en más de un bloque %XX?
Porque la codificación trabaja sobre bytes, no sobre caracteres visibles. UTF-8 representa la mayoría de los caracteres no ASCII — la ç, ğ, ı, ş turcas, o los emojis — usando de dos a cuatro bytes, y cada byte recibe su propio par %XX. Así, "ç" se convierte en %C3%A7 (dos bloques) y un emoji puede expandirse a ocho caracteres o más una vez codificado.
¿Cuál es la diferencia entre caracteres reservados y no reservados?
Los caracteres no reservados (letras, dígitos, - _ . ~) siempre son seguros y nunca necesitan codificarse. Los caracteres reservados (? # / : @ & = y algunos más) tienen un significado estructural en una URL — separan la ruta de la consulta, o un parámetro del siguiente — así que solo se codifican cuando aparecen como datos literales dentro de un valor, no cuando actúan como delimitadores.
¿Se envía mi texto a algún sitio?
No — la codificación y decodificación ocurren al instante en tu navegador; nada se sube a un servidor.
Herramientas Similares
Reportar un Problema
Codificar / Decodificar URL
Comentarios
Aún no hay comentarios — ¡sé el primero en escribir uno!