Codificação de URL: o que são %20, %0A e %C3%A7 e por que aparecem nos seus links
Quando você gera um link com uma mensagem, o texto se enche de sinais de porcentagem. Não é um erro: é a forma como uma URL transporta caracteres que não pode conter diretamente.
Por que é necessário
Uma URL só pode conter um conjunto limitado de caracteres, e vários deles têm um significado especial: ? marca onde começam os parâmetros, & os separa, # indica uma seção da página. Se sua mensagem contiver um desses sinais sem codificar, o link é cortado ali.
A codificação por porcentagem substitui cada caractere problemático por um % seguido do seu valor em hexadecimal. Os caracteres fora do alfabeto básico (acentos, cedilha, emojis) são convertidos primeiro para UTF-8 e ocupam vários códigos seguidos.
Os que você vai ver com mais frequência
| Caractere | Codificado | Nota |
|---|---|---|
| espaço | %20 | O mais comum de todos. |
| quebra de linha | %0A | Em e-mails usa-se %0D%0A. |
| , | %2C | |
| ? | %3F | Sem codificar, inicia os parâmetros. |
| ¿ | %C2%BF | |
| ¡ | %C2%A1 | |
| & | %26 | Sem codificar, separa parâmetros. |
| # | %23 | Sem codificar, corta tudo o que vem depois. |
| + | %2B | Sem codificar, às vezes é lido como espaço. |
| á é í ó ú | %C3%A1 %C3%A9 %C3%AD %C3%B3 %C3%BA | |
| ñ | %C3%B1 | |
| ç ã õ | %C3%A7 %C3%A3 %C3%B5 | Português. |
| 👋 | %F0%9F%91%8B | Um emoji ocupa doze caracteres. |
Um exemplo completo
A mensagem em espanhol “Hola, ¿tienen envío a Córdoba?” (Olá, vocês entregam em Córdoba?) dentro de um link do WhatsApp fica assim:
https://wa.me/5491123456789?text=Hola%2C%20%C2%BFtienen%20env%C3%ADo%20a%20C%C3%B3rdoba%3F
Parece ilegível, mas ao abri-lo o WhatsApp mostra o texto original, com seus acentos e sinais.
Erros típicos ao montar links à mão
- Deixar espaços sem codificar. Muitos aplicativos cortam o link no primeiro espaço ao colá-lo.
- Codificar duas vezes. Se você passar um texto já codificado por um codificador,
%20vira%2520e a mensagem chega com os códigos à mostra. - Usar + como espaço. Funciona em alguns formulários web, mas em links
mailto:esms:aparece como um sinal de mais. - Codificar a URL inteira. Só se codifica o valor de cada parâmetro, não os
?,&e=que estruturam o link.
Como se faz em código
Em JavaScript, a função encodeURIComponent() codifica corretamente o valor de um parâmetro. É a que o QLinky usa em todos os seus geradores:
const mensagem = "Olá, vocês entregam?";
const url = "https://wa.me/5511912345678?text=" + encodeURIComponent(mensagem);
Não use encodeURI() para isso: ela deixa sem codificar justamente os sinais &, ? e #, que são os que quebram o link.
Teste agora
Gere seu link grátis, sem cadastro e sem que seus dados saiam do navegador.
Gerador de link do WhatsApp com mensagem e QR CodeGerador de link de e-mail (mailto)Gerador de link de SMS com mensagem