Codificación de URL: qué son %20, %0A y %C3%B1 y por qué aparecen en tus enlaces
Cuando generas un enlace con un mensaje, el texto se llena de signos de porcentaje. No es un error: es la forma en que una URL transporta caracteres que no puede contener directamente.
Por qué hace falta
Una URL solo puede contener un conjunto limitado de caracteres, y varios de ellos tienen un significado especial: ? marca dónde empiezan los parámetros, & los separa, # indica una sección de la página. Si tu mensaje contiene uno de esos signos sin codificar, el enlace se corta ahí.
La codificación por porcentaje reemplaza cada carácter problemático por un % seguido de su valor en hexadecimal. Los caracteres fuera del alfabeto básico (acentos, eñes, emojis) se convierten primero a UTF-8 y ocupan varios códigos seguidos.
Los que vas a ver más seguido
| Carácter | Codificado | Nota |
|---|---|---|
| espacio | %20 | El más común de todos. |
| salto de línea | %0A | En correos se usa %0D%0A. |
| , | %2C | |
| ? | %3F | Sin codificar, inicia los parámetros. |
| ¿ | %C2%BF | |
| ¡ | %C2%A1 | |
| & | %26 | Sin codificar, separa parámetros. |
| # | %23 | Sin codificar, corta todo lo que sigue. |
| + | %2B | Sin codificar, a veces se lee como espacio. |
| á é í ó ú | %C3%A1 %C3%A9 %C3%AD %C3%B3 %C3%BA | |
| ñ | %C3%B1 | |
| ç ã õ | %C3%A7 %C3%A3 %C3%B5 | Portugués. |
| 👋 | %F0%9F%91%8B | Un emoji ocupa doce caracteres. |
Un ejemplo completo
El mensaje «Hola, ¿tienen envío a Córdoba?» dentro de un enlace de WhatsApp queda así:
https://wa.me/5491123456789?text=Hola%2C%20%C2%BFtienen%20env%C3%ADo%20a%20C%C3%B3rdoba%3F
Se ve ilegible, pero al abrirlo WhatsApp muestra el texto original, con sus acentos y signos.
Errores típicos al armar enlaces a mano
- Dejar espacios sin codificar. Muchas aplicaciones cortan el enlace en el primer espacio al pegarlo.
- Codificar dos veces. Si pasas un texto ya codificado por un codificador,
%20se convierte en%2520y el mensaje llega con los códigos a la vista. - Usar + como espacio. Funciona en algunos formularios web, pero en enlaces
mailto:ysms:aparece como un signo más. - Codificar la URL completa. Solo se codifica el valor de cada parámetro, no los
?,&y=que estructuran el enlace.
Cómo se hace en código
En JavaScript, la función encodeURIComponent() codifica correctamente el valor de un parámetro. Es la que usa QLinky en todos sus generadores:
const mensaje = "Hola, ¿tienen envío?";
const url = "https://wa.me/5491123456789?text=" + encodeURIComponent(mensaje);
No uses encodeURI() para esto: deja sin codificar justamente los signos &, ? y #, que son los que rompen el enlace.
Pruébalo ahora
Genera tu enlace gratis, sin registro y sin que tus datos salgan del navegador.
Generador de link de WhatsApp con mensaje y QRGenerador de enlace de correo (mailto)Generador de enlace de SMS con mensaje