Codificador y decodificador de URL
Codificador y decodificador de URL gratis. Codifica parámetros o URL completas, decodifica secuencias %XX y trata + como espacio en tu navegador.
Cómo usar el codificador y decodificador de URL
- Elige Codificar para convertir texto a una forma segura para URL, o Decodificar para volver a convertir texto codificado por porcentaje en caracteres legibles.
- Al codificar, elige un modo: Componente para un único valor (como un parámetro de consulta o un segmento de ruta), o URL completa para codificar una dirección entera manteniendo intacta su estructura.
- Al decodificar datos que vienen de un formulario HTML o de una cadena de consulta, activa Tratar + como espacio para que los signos
+se conviertan en espacios. - Pega tu texto y copia el resultado. Si una secuencia de porcentaje está mal formada, la herramienta muestra un error en lugar de adivinar.
¿Qué es la codificación de URL?
Las URL solo pueden contener un conjunto limitado de caracteres ASCII. Algunos caracteres, como /, ?, #, & y =, están reservados porque separan las partes de una dirección: la ruta, la cadena de consulta y el fragmento. Otros, como los espacios, las comillas, las letras con tilde, la ñ o los emojis, simplemente no están permitidos. La codificación de URL, también llamada codificación por porcentaje (percent-encoding), resuelve ambos problemas sustituyendo cada byte problemático por un % seguido de dos dígitos hexadecimales.
Primero el texto se convierte en bytes UTF-8 y cada byte se codifica por separado. Un espacio pasa a ser %20, un ampersand %26, é (dos bytes en UTF-8) %C3%A9, ñ %C3%B1 y el emoji 😀 (cuatro bytes) %F0%9F%98%80. Los caracteres no reservados, es decir, letras sin tilde, dígitos y - _ . ~, nunca necesitan codificarse.
Modo componente frente a modo URL completa
Elegir bien el modo es la decisión más importante, y equivocarse es una fuente clásica de errores.
El modo Componente funciona como encodeURIComponent de JavaScript. Codifica todos los caracteres reservados, de modo que el resultado puede colocarse sin riesgo dentro de una parte de la URL. Úsalo para valores de parámetros de consulta, segmentos de ruta o cualquier cosa que haya escrito un usuario. Por ejemplo, el término de búsqueda rock & roll se convierte en rock%20%26%20roll. Si no codificaras el &, el servidor interpretaría roll como el inicio de un nuevo parámetro.
El modo URL completa funciona como encodeURI. Supone que la entrada ya es una dirección completa y conserva los caracteres que le dan estructura, como : / ? # & y =, mientras codifica los espacios y los caracteres no ASCII. Úsalo para limpiar una dirección como https://example.com/café menu?q=tea y obtener https://example.com/caf%C3%A9%20menu?q=tea. No lo uses con valores sueltos: un & dentro de un valor quedaría sin codificar y rompería la cadena de consulta.
Una buena regla general: construye las URL por partes, codifica cada valor en modo Componente y usa el modo URL completa solo para direcciones que recibes ya montadas.
El signo + y la codificación de formularios
Los formularios HTML enviados con application/x-www-form-urlencoded codifican los espacios como + en lugar de %20. Por eso las URL de búsqueda suelen tener este aspecto: ?q=hola+mundo. La decodificación por porcentaje estándar deja + sin cambios, porque en una ruta un signo más es solo un signo más. Cuando decodifiques una cadena de consulta o datos de formulario, activa Tratar + como espacio para obtener hola mundo. Déjalo desactivado para rutas y para valores en los que importa un + literal, como números de teléfono o datos en Base64. Un signo más real en datos de formulario se envía como %2B, así que se decodifica bien en ambos casos.
Privacidad
La codificación y la decodificación se ejecutan íntegramente en tu navegador. Nada de lo que pegas, incluidas las URL que puedan contener tokens, identificadores de sesión o datos personales, se envía a un servidor ni se guarda.
Preguntas frecuentes
¿Por qué la decodificación falla con un error de codificación mal formada?
Un % debe ir seguido exactamente de dos dígitos hexadecimales, y los bytes resultantes deben formar UTF-8 válido. Cadenas como 100%, %G1 o una secuencia truncada como %E2%82 no se pueden decodificar de forma fiable, así que la herramienta indica el problema en lugar de producir un texto incorrecto. Para incluir un signo de porcentaje literal, codifícalo como %25.
¿Qué diferencia hay entre %20 y +?
Ambos pueden representar un espacio, pero en contextos distintos. %20 es válido en cualquier parte de una URL. + solo significa espacio en las cadenas de consulta codificadas como formulario; en el resto es un signo más literal.
¿Debo codificar una URL entera en modo Componente?
Solo si toda la URL es a su vez un valor dentro de otra URL, por ejemplo un parámetro redirect=. En ese caso, el modo Componente es justo lo que necesitas: https://a.com/?x=1 se convierte en https%3A%2F%2Fa.com%2F%3Fx%3D1.
¿Por qué mi texto está codificado dos veces?
La doble codificación ocurre cuando un texto ya codificado se vuelve a codificar, y %20 pasa a ser %2520. Decodifica una vez para comprobarlo y asegúrate de que cada valor se codifica solo en el momento de insertarlo en la URL.
¿La codificación de URL oculta o protege los datos?
No. La codificación por porcentaje es totalmente reversible y no aporta ninguna seguridad. Los valores sensibles en las URL pueden acabar en el historial del navegador y en los registros del servidor, así que evita poner secretos en las URL.
Herramientas relacionadas
- Codificador y decodificador Base64 Codificador y decodificador Base64 gratuito, compatible con UTF-8 y con opción base64url apta para URL. Funciona en tu navegador, no se sube nada.
- Formateador y validador JSON Formateador y validador JSON gratuito que embellece, minifica y comprueba JSON en tu navegador, con los errores de sintaxis indicados por línea y columna.