URL Encoder/Decoder
Codifica y decodifica URLs y parámetros de consulta.
¿Qué es URL Encoding y por qué es necesario?
URL Encoding (también llamado percent-encoding) es el proceso de convertir caracteres especiales en una URL a un formato que pueda transmitirse de forma segura por Internet. Las URLs solo pueden contener un subconjunto limitado de caracteres ASCII: letras, dígitos y algunos caracteres especiales como "-", "_", "." y "~". Cualquier otro carácter debe codificarse usando el formato "%XX" donde XX es el valor hexadecimal del carácter.
Este proceso es fundamental cuando necesitas incluir parámetros en URLs que contienen espacios, acentos, símbolos como "&", "=" o "#", o caracteres no latinos. Sin URL encoding, estos caracteres podrían interpretarse como delimitadores de la URL o causar errores en el servidor.
Casos de uso prácticos
Parámetros de búsqueda: Cuando un usuario busca "zapatos rojos & baratos", el espacio se codifica como "%20" o "+" y el "&" como "%26", resultando en "zapatos%20rojos%20%26%20baratos".
APIs REST: Al construir URLs con parámetros que incluyen emails, fechas con barras o JSON, cada valor debe codificarse correctamente para evitar errores HTTP 400.
Redes sociales: Los enlaces para compartir contenido en Twitter, Facebook o LinkedIn requieren que el título y la descripción estén correctamente codificados.
Preguntas frecuentes
¿Cuál es la diferencia entre encodeURIComponent y encodeURI?
encodeURI no codifica caracteres reservados de URL como ":", "/", "?", "#", "[", "]", "@", "!", "$", "&", "'", "(", ")", "*", "+", ",", ";" y "=". encodeURIComponent codifica todos estos caracteres. Usa encodeURI para URLs completas y encodeURIComponent para valores de parámetros individuales.
¿El espacio se codifica como "+" o "%20"?
Ambos son válidos pero en contextos diferentes. En el cuerpo de formularios (application/x-www-form-urlencoded), el espacio se codifica como "+". En la URL en sí (path y query string), se codifica como "%20".
¿Los caracteres UTF-8 como emojis se pueden codificar?
Sí. Los caracteres multibyte como emojis o caracteres chinos se codifican byte por byte. Por ejemplo, el emoji "😀" se codifica como "%F0%9F%98%80" (4 bytes en UTF-8).
¿Necesito codificar toda la URL?
No. Solo debes codificar los valores de los parámetros, no la estructura de la URL. El protocolo (https://), el dominio, las barras y el signo "?" no deben codificarse.
Caracteres que requieren codificación
| Carácter | Codificado | Carácter | Codificado |
|---|---|---|---|
| espacio | %20 | & | %26 |
| = | %3D | # | %23 |
| @ | %40 | + | %2B |
| ñ | %C3%B1 | á | %C3%A1 |