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ácterCodificadoCarácterCodificado
espacio%20&%26
=%3D#%23
@%40+%2B
ñ%C3%B1á%C3%A1