Codificar e Decodificar URL
Traduza um endereço com espaço, acento e símbolo para o formato que a web aceita, leia o que está escrito dentro de um link e monte links com parâmetros sem quebrar nada.
Montar um link com parâmetros
Por que um endereço não aceita espaço nem acento
Endereço de site nasceu com uma regra dura, e ela continua valendo: só um punhado de caracteres pode aparecer ali dentro sem ser reescrito. Letra de A a Z sem acento, algarismo de 0 a 9 e mais quatro sinais, o hífen, o ponto, o sublinhado e o til. Todo o resto precisa ser traduzido.
A tradução é o que essa página faz, e o nome técnico dela é percent-encoding. Cada caractere de fora vira um sinal de por cento seguido de dois dígitos, e esses dois dígitos são o número daquele caractere na tabela do computador. O espaço tem o número 20 nessa tabela, e por isso ele vira %20. O ç ocupa dois bytes e vira %C3%A7. O ã vira %C3%A3.
Isso não é frescura de padrão antigo. Um endereço passa por navegador, servidor, proxy, cliente de e-mail, aplicativo de mensagem, planilha e sistema de disparo, e cada um deles precisa saber onde o endereço começa e onde ele acaba. O espaço é justamente o sinal que a maioria usa para dizer que acabou: se ele passasse cru, metade do link ficaria para trás.
Os caracteres que não são proibidos, são ocupados
Uma parte dos sinais tem outro problema. Eles não são barrados, eles já têm emprego dentro do endereço. Usar um deles como texto comum não dá erro nenhum: o link simplesmente passa a significar outra coisa.
| Caractere | O emprego dele no endereço | Codificado |
|---|---|---|
| espaço | Marca o fim do endereço em quase todo lugar | %20 |
| ? | Abre a lista de parâmetros | %3F |
| & | Separa um parâmetro do outro | %26 |
| = | Separa o nome do parâmetro do valor dele | %3D |
| # | Abre o pedaço que nunca chega ao servidor | %23 |
| / | Separa uma pasta da outra | %2F |
| + | Vale como espaço dentro dos parâmetros | %2B |
| % | Abre o próprio código de dois dígitos | %25 |
O caso mais comum de link partido no meio é o &. Alguém coloca Bolos & Doces da Ana dentro de um parâmetro, o sistema lê o & como separador, e o valor chega ao outro lado como Bolos. O resto vira um parâmetro fantasma que ninguém pediu.
O endereço inteiro ou só um pedaço: são duas contas diferentes
Essa é a escolha que mais confunde, e é por isso que a ferramenta tem os dois modos separados.
Codificar um pedaço é o que você faz quando o texto vai dentro de um parâmetro. Aí tudo que não é letra, número, hífen, ponto, sublinhado ou til precisa ser codificado, inclusive a barra, o & e os dois pontos. Se a barra passasse, o servidor leria como pasta e procuraria uma página que não existe.
Codificar um endereço inteiro é o que você faz quando já tem o link montado e ele está com um espaço ou um acento no meio. Aí os caracteres de estrutura precisam continuar de pé: as barras seguem sendo barras, o ? segue abrindo os parâmetros e o https:// segue inteiro. Só o que sobra é codificado.
Usar o modo errado é o segundo erro mais comum com endereço. Codificar o link inteiro como se fosse um pedaço transforma https:// em https%3A%2F%2F, e o resultado deixa de ser um endereço.
%20 ou +: depende de onde o texto está
Os dois representam espaço, e os dois estão certos, cada um no seu lugar.
O %20 funciona em qualquer parte do endereço: no nome do arquivo, no caminho da pasta e dentro dos parâmetros. É a escolha segura quando você não tem certeza.
O + só vale como espaço depois do ponto de interrogação, porque ali o formato é o de formulário, aquele que o navegador usa quando alguém aperta o botão de enviar. No caminho do arquivo, + é um sinal de mais de verdade, e um arquivo chamado tabela+2026.pdf tem o sinal no nome mesmo.
Na prática: se o texto está depois do ?, tanto faz. Se está antes, usa %20.
%2520: o erro que quebra o link em silêncio
Esse merece um nome próprio porque aparece toda semana em sistema de empresa.
Acontece quando um link já codificado é codificado de novo. O % do %20 é ele mesmo um caractere que precisa ser codificado, e ele vira %25. Então %20 vira %2520, e o servidor passa a procurar um arquivo que tem literalmente %20 no nome. Como esse arquivo não existe, a resposta é um 404 que ninguém entende, porque o link parece certo aos olhos.
O sinal de que foi isso é sempre o mesmo: aparece %25 no meio do endereço. Quando você colar um link no modo decodificar aqui e o resultado voltar ainda com % dentro, é esse o caso, e a ferramenta escreve isso na tela.
A saída é decodificar primeiro e codificar o texto limpo depois, uma vez só.
Onde isso encosta no dia a dia de quem tem empresa
Link de WhatsApp com a mensagem pronta. Aquele link que abre a conversa com o texto já digitado é wa.me/5511999999999?text= seguido da mensagem codificada. Se a mensagem tem acento, vírgula ou emoji e vai crua, o link chega quebrado ou com a mensagem cortada no primeiro caractere estranho. O segundo formulário desta página monta esse link inteiro.
Link de campanha. Os parâmetros que começam com utm_ dizem ao Google Analytics de onde veio cada visita. Nome de campanha com espaço e acento precisa ser codificado, senão o relatório vem com a campanha partida em pedaços.
Arquivo com espaço no nome. Tabela de Preços 2026.pdf subiu para o site e o link não abre no celular de ninguém. É o espaço e o ç. Vale mais renomear o arquivo do que codificar o link.
Link que quebra na mensagem. Aplicativo de mensagem tenta adivinhar onde o link acaba, e ele para no primeiro espaço. Um link com espaço cru vira um link pela metade e um pedaço de texto solto do lado.
Retorno de sistema de nota fiscal e de meio de pagamento. Boa parte devolve o resultado dentro de um parâmetro de endereço, e o conteúdo vem codificado. Colar aqui no modo decodificar é o jeito mais rápido de ler o que o sistema respondeu.
Domínio com acento é outra regra
Percent-encoding vale para o caminho e para os parâmetros, não para o domínio. No domínio, acento é resolvido por uma regra própria chamada Punycode, que reescreve o nome usando só letras do inglês e coloca xn-- na frente.
É por isso que existe domínio .com.br com acento: o Registro.br aceita os caracteres do português, e o navegador faz a conversão sozinho antes de enviar. Quando você colar um endereço com xn-- na ferramenta, ela avisa que aquilo é Punycode e não código de porcentagem.
Isso não esconde nada de ninguém
Vale a mesma frase que vale para o Base64: percent-encoding não é criptografia. Um link com o texto codificado é lido por qualquer pessoa em um clique, inclusive aqui nesta página.
Então não coloque senha, chave de API nem dado de cliente dentro de um endereço achando que a codificação protege. Endereço fica gravado no histórico do navegador, no registro do servidor e no relatório de quem recebeu o clique.
A regra prática que evita todo esse trabalho
Para nome de arquivo e endereço de página, existe uma convenção que resolve o problema antes de ele existir: tudo em minúscula, sem acento e sem espaço, com hífen no lugar do espaço.
tabela-de-precos-2026.pdf em vez de Tabela de Preços 2026.pdf. O link fica menor, funciona em qualquer aparelho, cabe numa mensagem sem quebrar e ainda é mais fácil de ler quando alguém compartilha.
Perguntas rápidas
O que significa %20 numa URL?
É o espaço. Endereço de site não aceita espaço, então ele é reescrito como um sinal de por cento seguido do número do caractere na tabela do computador, que no caso do espaço é 20. É o mesmo motivo pelo qual o ç aparece como %C3%A7.
Por que o meu link quebra quando tem acento ou espaço?
Porque só letra sem acento, número, hífen, ponto, sublinhado e til podem aparecer crus num endereço. O resto precisa ser codificado. O espaço é o pior deles, porque a maioria dos programas trata espaço como fim do endereço e corta o link ali.
Qual a diferença entre + e %20?
Os dois valem como espaço, mas em lugares diferentes. O %20 funciona em qualquer parte do endereço. O + só é lido como espaço depois do ponto de interrogação, no formato de formulário: no caminho do arquivo, ele é um sinal de mais de verdade. Na dúvida, usa %20.
Por que aparece %2520 no meu link?
Porque ele foi codificado duas vezes. O % do %20 é ele mesmo um caractere que precisa de código, e vira %25. O servidor passa a procurar um arquivo com %20 no nome e devolve 404. A saída é decodificar uma vez e codificar de novo só o texto limpo.
Codificar a URL protege alguma coisa?
Não. Percent-encoding não é criptografia nem senha: qualquer pessoa lê o conteúdo em um clique, inclusive nesta página. Nunca coloque senha, chave de API ou dado de cliente dentro de um endereço, porque ele fica gravado no histórico e no registro do servidor.
Posso usar acento no nome do arquivo que eu subo no site?
Pode, mas não compensa. A convenção que evita problema é tudo em minúscula, sem acento e com hífen no lugar do espaço: tabela-de-precos-2026.pdf em vez de Tabela de Preços 2026.pdf. O link fica menor e funciona em qualquer aparelho.
Qual a diferença entre codificar o endereço inteiro e codificar um pedaço?
No endereço inteiro, os caracteres de estrutura continuam de pé: barra segue sendo barra e o https:// segue inteiro. No pedaço, tudo que não é letra ou número é codificado, inclusive a barra e o &, porque aquele texto vai dentro de um parâmetro e não pode ser confundido com estrutura.
O que eu colo aqui é enviado para algum servidor?
Não. A conversão acontece dentro do seu navegador e nada é enviado nem guardado. Ainda assim, evite colar token e link com dado de cliente em conversores da internet em geral, porque em boa parte deles o conteúdo viaja mesmo.
🧮 Veja também
Ver todas as ferramentas →📖 Do blog do Kit de Negócios
Ver todos os posts →








🚀 Para o seu negócio crescer




Links de afiliado: se você comprar por eles, o Kit de Negócios recebe uma comissão pequena, sem custo nenhum para você. É o que paga o site. 💙