Decodificar URL (e codificar)

Decodificar URL online — e codificar texto para links

Cole um link ou um texto com códigos de porcentagem, como S%C3%A3o%20Paulo, e leia o texto de verdade na hora — com ç, ã e é no lugar. Um link completo também é separado em domínio, caminho e parâmetros da query string, cada um decodificado. Para o caminho inverso, escolha Codificar. Tudo acontece no seu navegador; nada é enviado.

Direção
  • Texto decodificado

    https://www.exemplo.com.br/busca?q=pão de queijo&cidade=São Paulo&cupom=FRETE+GRÁTIS&volta=/carrinho?etapa=2#avaliacoes

Códigos % decodificados11
Camadas de codificação1
Sinais de +Lidos como espaço
Protocolohttps:
Domínio (host)www.exemplo.com.br
Caminho/busca
Fragmento (#)avaliacoes

Os parâmetros são lidos como o navegador lê: + é espaço.

Parâmetros da query string (decodificados)
#NomeValor
1qpão de queijo
2cidadeSão Paulo
3cupomFRETE+GRÁTIS
4volta/carrinho?etapa=2

Calculado no seu dispositivo · fórmulas conferidas com resultados conhecidos · Como testamos

Como decodificar uma URL

  1. Cole o link ou o trecho codificado na caixa — por exemplo p%C3%A3o%20de%20queijo. O texto legível aparece na hora.
  2. Se for uma URL completa, você também vê as partes: protocolo, domínio (inclusive a forma Unicode de domínios com acento), caminho, fragmento depois do # e uma tabela com cada parâmetro da query string já decodificado.
  3. Deixe “Ler + como espaço” marcado para links de busca e dados de formulário, onde o + significa espaço. Desmarque para outros textos, em que + é só o sinal de mais.
  4. Para codificar, escolha Codificar, digite o texto e diga como: parte de uma URL (o normal para o valor de um parâmetro), URL inteira, dados de formulário ou RFC 3986 estrita.
  5. Toque em Copiar ao lado do resultado. Se houver um % que não forma um código válido, a página mostra a posição dele.

Por que os links ficam cheios de %

Uma URL só pode ter um conjunto pequeno de caracteres ASCII, e vários deles têm função: / separa o caminho, ? abre a query string, & e = separam os parâmetros e # abre o fragmento. Qualquer outro caractere — e qualquer um desses usado como dado — vira um sinal de porcentagem seguido de dois dígitos hexadecimais, o valor de um byte. Isso é a codificação por porcentagem (percent-encoding), definida na RFC 3986.

O espaço é o byte 32, que em hexadecimal é 20, por isso vira %20. Letras fora do ASCII primeiro são convertidas nos seus bytes UTF-8, e cada byte ganha o seu código. É por isso que o português “engorda” tanto nos links: o ç são dois bytes e vira %C3%A7, o ã vira %C3%A3, e “São Paulo & Rio” vira S%C3%A3o%20Paulo%20%26%20Rio. Decodificar faz o caminho de volta: cada código vira byte de novo e os bytes são lidos como texto UTF-8. Letras sem acento, números e - . _ ~ nunca precisam ser codificados.

Exemplo: um link de loja virtual

O exemplo da caixa é um link de busca como os que circulam no WhatsApp e em campanhas com UTM:

https://www.exemplo.com.br/busca?q=p%C3%A3o+de+queijo&cidade=S%C3%A3o%20Paulo&cupom=FRETE%2BGR%C3%81TIS&volta=%2Fcarrinho%3Fetapa%3D2#avaliacoes

Ele tem 11 códigos % em uma única camada. Decodificado, fica assim:

https://www.exemplo.com.br/busca?q=pão de queijo&cidade=São Paulo&cupom=FRETE+GRÁTIS&volta=/carrinho?etapa=2#avaliacoes

A tabela de parâmetros mostra 4 itens: q = “pão de queijo”, cidade = “São Paulo”, cupom = “FRETE+GRÁTIS”, volta = “/carrinho?etapa=2”. Repare em três detalhes. Em q, os + viraram espaços, porque em query string o + significa espaço. Em cupom, o %2B virou um + de verdade — é assim que se manda um sinal de mais dentro de um parâmetro. E o último valor é ele mesmo um caminho com query string; por isso a /, o ? e o = foram codificados: soltos, o = encerraria o parâmetro antes da hora. O fragmento, #avaliacoes, nunca é enviado ao servidor.

encodeURIComponent, encodeURI ou formulário?

As quatro formas de codificar diferem nos caracteres que deixam como estão:

CaractereParte de uma URLURL inteiraFormulárioRFC 3986 estrita
espaço%20%20+%20
&e comercial%26&%26%26
+mais%2B+%2B%2B
/barra%2F/%2F%2F
=igual%3D=%3D%3D
?interrogação%3F?%3F%3F
#cerquilha%23#%23%23
çc cedilha%C3%A7%C3%A7%C3%A7%C3%A7
ãa com til%C3%A3%C3%A3%C3%A3%C3%A3
€euro%E2%82%AC%E2%82%AC%E2%82%AC%E2%82%AC

Acentos quebrados: ISO-8859-1, “São Paulo” e dupla codificação

Domínios .br com acento

O Registro.br aceita domínios com acentos e ç, e eles viajam pela internet numa forma ASCII chamada Punycode (RFC 3492), marcada por xn--. açaí.com.br, por exemplo, é enviado como xn--aa-4iaz.com.br. Cole qualquer uma das formas: a página mostra o domínio como o navegador envia e em Unicode. Punycode não é codificação por porcentagem, então um domínio nunca deve aparecer com códigos %.

Dicas

A decodificação e a codificação rodam no seu navegador: nada do que você cola é enviado nem salvo, e recarregar a página limpa a caixa. Links costumam carregar tokens de sessão e dados pessoais, então isso faz diferença.

Perguntas frequentes

O que significa %20 num link?

É um espaço codificado: 20 é o valor hexadecimal do caractere de espaço. Cole o link aqui e todos os códigos voltam a ser texto legível.

Por que o meu link tem %C3%A7 e %C3%A3?

São o ç e o ã em UTF-8, que ocupam dois bytes cada; cada byte vira um código %. Decodificando, as letras com acento voltam ao lugar.

Por que aparece %2520 na URL?

O link foi codificado duas vezes. Na primeira, o espaço virou %20; na segunda, o próprio % virou %25. A página detecta e desfaz todas as camadas.

Qual a diferença entre encodeURI e encodeURIComponent?

O encodeURI codifica uma URL inteira e mantém os caracteres que dão estrutura a ela, como / ? & = #. O encodeURIComponent codifica um pedaço — o valor de um parâmetro ou um trecho do caminho — e codifica esses caracteres também, para que não quebrem a URL em volta.

O + num link é espaço?

Na query string de formulários e buscas, sim: ?q=pao+de+queijo quer dizer “pao de queijo”. Fora dela, e na codificação da RFC 3986, + é sinal de mais e o espaço é %20. Para mandar um + de verdade num parâmetro, use %2B.

O link que eu colo é enviado para algum lugar?

Não. A página decodifica e codifica com JavaScript no seu navegador, sem mandar nada a um servidor, e não guarda o que você cola.

Incorpore esta calculadora no seu site

Grátis para qualquer site ou blog. Cole este código onde a calculadora deve aparecer:

Última atualização: 16 de outubro de 2026

Menu

Categorias

Calculadoras financeiras16 calculadorasCalculadoras para negócios e compras5 calculadorasCalculadoras de saúde e bem-estar7 calculadorasCalculadoras de matemática e escola15 calculadorasCalculadoras de datas e horas9 calculadorasContagens regressivas para datas especiais8 calculadorasFerramentas para o dia a dia33 calculadorasFerramentas de microfone, câmera e som10 calculadorasFerramentas de imagem e PDF18 calculadorasFerramentas para desenvolvedores7 calculadoras

CalcWorthy

SobreContatoPolítica de privacidadeTermos de uso

Idioma

Idioma
PortuguêsPortugueseEnglishEnglishالعربيةArabicবাংলাBanglaDeutschGermanEspañolSpanishفارسیPersianFrançaisFrenchעבריתHebrewहिन्दीHindiBahasa IndonesiaIndonesianItalianoItalian日本語Japanese한국어KoreanBahasa MelayuMalayNederlandsDutchPolskiPolishРусскийRussianไทยThaiTürkçeTurkishУкраїнськаUkrainianاردوUrduTiếng ViệtVietnamese简体中文Simplified Chinese