Codificador y Decodificador URL
Codifica y decodifica URLs y parámetros al instante. Modos encodeURIComponent (parámetros) y encodeURI (URL completa) con toggle.
Otras herramientas para desarrolladores
¿Qué es la codificación URL?
La codificación URL (también llamada percent-encoding o codificación porcentual) es un mecanismo para representar caracteres especiales en URLs de forma segura. Según el estándar RFC 3986, una URL solo puede contener un conjunto limitado de caracteres ASCII: letras (A-Z, a-z), dígitos (0-9) y algunos caracteres especiales como -, _, . y ~.
Cualquier otro carácter — espacios, acentos, emojis, símbolos como &, =, ?, # — debe codificarse como una secuencia %XX, donde XX es el valor hexadecimal del byte. Por ejemplo, un espacio se convierte en %20, la letra ñ en %C3%B1 (dos bytes en UTF-8) y el símbolo & en %26.
Sin esta codificación, los caracteres especiales podrían romper la estructura de la URL o interpretarse de forma incorrecta por el servidor. Por ejemplo, el carácter & separa parámetros en una query string, así que si un valor de parámetro contiene un & literal, debe codificarse como %26 para evitar ambigüedad.
Diferencia entre encodeURI y encodeURIComponent
JavaScript ofrece dos funciones para codificar URLs, y es importante saber cuándo usar cada una:
encodeURI()codifica una URL completa, preservando los caracteres de estructura::,/,?,#,&,=,@. Úsala cuando quieras codificar una URL entera manteniendo su formato válido.encodeURIComponent()codifica todo excepto letras, números y-_.~. Úsala para codificar valores individuales de parámetros que se insertarán dentro de una URL.
Ejemplo práctico: si quieres pasar la URL https://ejemplo.com/página?q=hola mundo como parámetro de otra URL, debes usar encodeURIComponent(). Si usas encodeURI(), los caracteres :, /, ? y = no se codificarían y la URL resultante sería ambigua.
¿Cuándo necesitas codificar URLs?
La codificación URL es necesaria en numerosos escenarios del desarrollo web:
- Parámetros de query string: cuando construyes URLs dinámicas con valores que pueden contener caracteres especiales (
?nombre=José García&ciudad=Logroño). - Llamadas a APIs: al enviar datos como parte de la URL en peticiones GET o al construir endpoints dinámicos.
- Formularios HTML: los navegadores codifican automáticamente los datos de formularios en formato
application/x-www-form-urlencoded. - Redirecciones: cuando una URL de destino se pasa como parámetro de otra URL (
?redirect=https%3A%2F%2Fejemplo.com). - Compartir enlaces: URLs con caracteres no ASCII (acentos, caracteres chinos, árabes) necesitan codificación para funcionar en todos los clientes.
Un error común es la doble codificación: codificar una URL que ya está codificada. Esto convierte %20 en %2520, generando URLs que no funcionan. Antes de codificar, asegúrate de que el texto está en su forma original.
Preguntas Frecuentes
¿Qué caracteres se codifican en una URL?
Los caracteres especiales como espacios, &, =, ?, #, acentos y emojis se convierten a secuencias %XX donde XX es el valor hexadecimal del byte. Las letras, números y los caracteres -_.~ no se codifican.
¿Cuál es la diferencia entre encodeURI y encodeURIComponent?
encodeURI preserva los caracteres de estructura URL (:, /, ?, #, &, =). Es para codificar una URL completa. encodeURIComponent codifica todo excepto letras, números y -_.~. Es para codificar valores individuales de parámetros.
¿Qué pasa si codifico una URL ya codificada?
Se produce doble codificación: %20 se convierte en %2520. Esto genera URLs incorrectas que el servidor no puede interpretar. Asegúrate de codificar solo una vez o decodifica primero si no estás seguro del estado actual.
¿Por qué los espacios se convierten en %20?
El estándar URL (RFC 3986) no permite espacios. El carácter espacio tiene el valor hexadecimal 20 en ASCII, por lo que se representa como %20. En formularios HTML (application/x-www-form-urlencoded), los espacios también se pueden representar como +.