Cómo codificar y decodificar URL: una guía completa
Respuesta rápida
La codificación URL convierte caracteres no seguros en secuencias %XX donde XX es el valor hexadecimal del byte. Los espacios se convierten en %20 (o + en los datos del formulario), los caracteres chinos se convierten en secuencias %XX de varios bytes. Utilice nuestro codificador URL y decodificador URL gratuitos: todo el procesamiento se realiza localmente en su navegador.
Introducción
La codificación URL, también conocida como codificación porcentual, es un mecanismo para codificar caracteres reservados e inseguros en un URL para que el URL pueda transmitirse de forma segura a través de Internet. URLs sólo puede contener un conjunto limitado de caracteres ASCII; cualquier otro carácter (espacios, letras que no sean ASCII, símbolos) debe estar codificado en porcentaje como una secuencia que comienza con % seguido de dos dígitos hexadecimales que representan el valor del byte.
Paso a paso
-
Identificar qué necesita codificación
Los caracteres que no están en el conjunto no reservado (A-Z, a-z, 0-9, -, ., _, ~) deben estar codificados en porcentaje. Esto incluye espacios, separadores de consultas como = y &, barras diagonales y todos los caracteres que no sean ASCII, como chino, árabe o emoji.
-
Codifique el URL o la cadena de consulta
Pegue su texto en la herramienta Codificador URL. Utiliza encodeURIComponent() para codificar cada carácter reservado. El resultado aparece instantáneamente en el campo de salida.
-
Copia el resultado codificado
Haga clic en el botón Copiar para copiar la cadena codificada en porcentaje. Ahora puede incrustarlo de forma segura en un URL parámetro de consulta, una solicitud API o un envío de formulario.
-
Decodificar un URL codificado
Pegue un URL codificado o una cadena de consulta en la herramienta Decodificador URL. Utiliza decodeURIComponent() para restaurar los caracteres originales. Verifique que la salida decodificada coincida con sus expectativas.
-
Verificar casos extremos
Compruebe que los espacios se decodifiquen correctamente (%20 frente a +), que las secuencias UTF-8 de varios bytes se decodifiquen con el carácter correcto y que las cadenas ya codificadas no tengan doble codificación.
Ejemplos
Codificar texto con un espacio.
Aporte: Hello World
Producción: Hello%20World
Codificar un separador de ruta
Aporte: a/b
Producción: a%2Fb
Codificar caracteres chinos (UTF-8)
Aporte: 你好
Producción: %E4%BD%A0%E5%A5%BD
Decodificar un parámetro de consulta codificado
Aporte: key%3Dvalue%26foo%3Dbar
Producción: key=value&foo=bar
Problemas comunes
- Doble codificación: codificar una cadena ya codificada convierte %20 en %2520. Siempre verifique si la entrada ya está codificada antes de volver a codificarla.
- Confundir encodeURI con encodeURIComponent: encodeURI mantiene caracteres reservados como /, ? y intactos para URLs completo, mientras que encodeURIComponent codifica todo para los valores de los parámetros de consulta.
- Manejo de espacio: %20 es la forma codificada por porcentaje; + solo es válido en los datos del cuerpo de application/x-www-form-urlencoded, no en URL ruta o cadena de consulta según RFC 3986.
- Codificaciones heredadas que no son UTF-8: los navegadores modernos codifican como UTF-8, pero los sistemas heredados pueden usar GBK o Latin-1, lo que provoca mojibake cuando se decodifica en el otro lado.
Consejos
- Utilice encodeURIComponent() para valores de parámetros de consulta individuales y encodeURI() para URLs completos que ya estén bien formados.
- Al crear cadenas de consulta, codifique el valor pero no los separadores = o &; codifique cada valor por separado y luego únalo con &.
- Utilice nuestras herramientas URL Encoder y Decoder para depurar llamadas API que devuelven errores 400 debido a cadenas de consulta con formato incorrecto.
- Decodifica siempre en el lado del servidor usando la misma codificación de caracteres (UTF-8) para evitar mojibake.