A decodificação de URL (decodificação percentual) é o inverso da codificação de URL: converte sequências codificadas percentualmente de volta aos seus caracteres originais. Cada ocorrência de um sinal de percentual seguido de dois dígitos hexadecimais (%XX) é substituída pelo byte que XX representa. Múltiplos bytes codificados consecutivos são recombinados para reconstruir o caractere UTF-8 original.
A decodificação de URL é uma tarefa cotidiana para desenvolvedores que trabalham com APIs, web scraping, análise de logs e fluxos de autenticação. URLs codificadas são legíveis por máquinas, mas opacas para humanos — decodificá-las revela instantaneamente os caminhos reais, consultas de pesquisa, destinos de redirecionamento e valores de parâmetros que de outra forma exigiriam conversão mental de hex para caractere.
Por que usar esta ferramenta?
Entenda rapidamente qualquer URL ou query string codificada percentualmente — sem necessidade de console do navegador, nada enviado a um servidor.
⚡
Decodificação instantânea
Cole qualquer URL ou parâmetro codificado e veja a versão legível por humanos imediatamente. Ótimo para depurar requisições de API e arquivos de log.
🛡️
Recuperação de erros
Recorre ao legacy unescape() para entradas que contêm caracteres Latin-1 codificados percentualmente no estilo antigo que falhariam com decodeURIComponent.
🔒
Apenas no cliente
Toda a decodificação é executada localmente no seu navegador. Tokens, senhas e parâmetros de query privados nunca saem do seu dispositivo.
🔁
Suporte a URL completa
Decodifique URLs completas ou valores de parâmetros individuais. A ferramenta lida com espaços %20 padrão e preserva sinais + como caracteres de adição literais.
Como usar este decodificador de URL online
Sem conta, sem instalação. Cole sua string codificada em percentual no campo de entrada e o resultado decodificado aparece instantaneamente. Tudo roda no seu navegador — seus dados nunca saem do seu dispositivo.
1
Cole sua URL codificada ou string
Copie qualquer string codificada em percentual — uma URL da barra de endereços, um parâmetro de consulta de logs do servidor, uma resposta de API ou um destino de redirecionamento — e cole-a no campo de entrada.
2
Detecção automática de formato
O decodificador lida automaticamente com a codificação percentual %XX e com o + como espaço (application/x-www-form-urlencoded). Não é necessário especificar o formato de codificação manualmente.
3
Inspecione a saída decodificada
O texto legível aparece instantaneamente. Se a entrada continha codificação aninhada (strings duplamente codificadas), o decodificador resolve uma camada por vez. Um erro aparece para sequências %XX malformadas.
4
Copiar ou recodificar
Clique em Copiar para pegar a string decodificada. Precisa codificá-la novamente com configurações diferentes? Alterne para a ferramenta Codificador de URL com um clique.
Como a decodificação funciona
O decodificador examina a entrada em busca de sequências %, converte cada grupo de dois dígitos hexadecimais em um valor de byte, agrupa sequências de bytes consecutivos e os interpreta como UTF-8 para produzir os caracteres Unicode finais.
Referência de caracteres codificados percentualmente
Uma referência rápida para as sequências codificadas percentualmente mais encontradas:
Codificado
Car.
Onde você verá
%20
space
path segments, query values
%2B
+
literal plus (not a space in query)
%2F
/
slash inside a path component
%3F
?
literal question mark in a value
%23
#
literal hash in a value
%26
&
literal ampersand in a value
%3D
=
literal equals sign in a value
%40
@
at sign in username / password
%3A
:
colon inside a path segment
%25
%
literal percent sign
%2C
,
comma in path or query
%5B
[
opening bracket
%5D
]
closing bracket
%7B
{
curly brace in template literals
%7D
}
curly brace in template literals
Casos de uso comuns
Depuração de requisições API
Copie uma URL dos logs de rede do DevTools do navegador e decodifique-a para ver os valores reais dos parâmetros de query — especialmente útil quando ferramentas automatizadas ou bibliotecas codificaram percentualmente os parâmetros.
Leitura de arquivos de log
Logs de acesso de servidores web e logs de aplicações armazenam URLs em sua forma codificada. Decodifique-os para encontrar os caminhos reais solicitados, termos de pesquisa e valores de parâmetros.
Inspeção de redirecionamentos
Callbacks OAuth, redirecionamentos SSO e URLs de rastreamento de links frequentemente carregam parâmetros redirect_uri ou next fortemente codificados. Decodifique a URL para rastrear o destino pretendido.
Análise de payloads de webhook
Corpos de webhook enviados como application/x-www-form-urlencoded (Stripe, Twilio, GitHub) chegam como strings codificadas percentualmente. Decodifique-os para ler os valores reais dos campos.
Extração de consultas de pesquisa
URLs de analytics e cabeçalhos referrer contêm a consulta de pesquisa original do usuário codificada percentualmente no parâmetro q=. Decodifique para exibir ou analisar os termos de pesquisa reais.
Engenharia reversa de URLs
Ao integrar com APIs de terceiros ou fazer scraping, URLs encontradas frequentemente contêm segmentos de caminho e parâmetros codificados. Decodifique-os para entender a estrutura da URL e reproduzir requisições.
Armadilhas comuns
Estes são os erros mais frequentes ao decodificar strings codificadas percentualmente:
✕
Confundir + com %20
Em dados application/x-www-form-urlencoded (envios de formulários HTML), + representa um espaço. Mas em um caminho de URL bruto ou um valor codificado com encodeURIComponent, + é um sinal de adição literal. decodeURIComponent não converte + em espaço — use URLSearchParams ou unquote_plus para dados de formulário.
✕
Strings duplamente codificadas
Se uma string foi codificada duas vezes, decodificá-la uma vez ainda deixa sinais de percentual: %2520 decodifica para %20, não para um espaço. Decodifique uma segunda vez para obter o valor original. Fique atento a isso em logs, proxies e middlewares que recodificam dados já codificados.
✕
Sequências percentuais malformadas
Um % isolado ou seguido de caracteres não hexadecimais (ex: %GG ou % 2) é inválido e lançará um URIError. Sempre valide a entrada ou envolva a decodificação em um try/catch.
✕
Incompatibilidade de codificação (Latin-1 vs UTF-8)
Sistemas antigos (urlencode do PHP, ASP clássico) codificavam caracteres como bytes Latin-1. Uma string codificada como Latin-1 pode decodificar incorretamente com um decodificador UTF-8. Se você vir caracteres ilegíveis, tente o caminho legacy unescape() ou determine a codificação original.
Exemplos de código
Como decodificar strings de URL em linguagens e ambientes populares:
JavaScript (browser / Node.js)
// Decode a percent-encoded component
decodeURIComponent('hello%20world%20%26%20more') // → "hello world & more"
// Decode a full URL (leaves structure characters encoded)
decodeURI('https://example.com/path?q=hello%20world') // → "https://example.com/path?q=hello world"
// Parse a query string (handles + as space automatically)
const params = new URLSearchParams('q=hello+world&lang=en')
params.get('q') // → "hello world"
const url = new URL('https://example.com/search?q=hello%20world%20%26%20more')
url.searchParams.get('q') // → "hello world & more"
url.pathname // → "/search"
CLI (bash)
# Decode with Python one-liner
python3 -c "from urllib.parse import unquote; print(unquote('hello%20world'))"
# Decode with Node.js
node -e "console.log(decodeURIComponent('hello%20world%20%26'))"
Decodificador de URL vs. alternativas
Várias ferramentas podem decodificar strings codificadas em percentual, mas diferem em clareza, privacidade e conveniência.
Esta ferramenta
Baseada em navegador, instantânea e privada. Lida com codificação %XX, + como espaço, Unicode e sequências malformadas. Nenhum dado enviado a qualquer servidor.
Barra de endereços do navegador
Os navegadores decodificam URLs para exibição, mas nem sempre de forma completa — alguns caracteres codificados permanecem visíveis na barra de endereços. Não é útil para inspecionar valores de parâmetros individuais.
DevTools / curl -v
O DevTools do navegador e o curl mostram URLs brutas e decodificadas nas solicitações de rede. Útil para depuração, mas requer troca de ferramentas e saber onde procurar.
Perguntas frequentes
Qual é a diferença entre decodeURIComponent e decodeURI?
decodeURIComponent decodifica todas as sequências codificadas percentualmente incluindo caracteres reservados (%2F → /, %3F → ?, etc.). decodeURI só decodifica sequências que não produziriam um caractere com significado especial em uma URL — deixa %2F, %3F, %23 e outros caracteres estruturais codificados. Use decodeURIComponent para valores de parâmetros; use decodeURI apenas quando tiver uma URL completa e quiser preservar sua estrutura.
Por que vejo URIError: URI malformada?
Este erro de decodeURIComponent ocorre quando a entrada contém um % não seguido de dois dígitos hexadecimais válidos, ou quando uma sequência UTF-8 multibyte está incompleta (ex: %E2 sem o seguinte %82%AC). Remova ou escape sinais de percentual soltos antes de decodificar.
A decodificação trata + como espaço?
Não — decodeURIComponent trata + como um sinal de adição literal, não como espaço. A convenção + → espaço só se aplica a dados application/x-www-form-urlencoded (envios de formulários HTML). Para decodificar dados codificados em formulário, use URLSearchParams (navegador/Node) ou urllib.parse.unquote_plus (Python).
É seguro fazer a decodificação de URL no lado do cliente?
Sim — a decodificação de URL é uma transformação pura sem requisições de rede. Todos os navegadores modernos incluem decodeURIComponent e decodeURI como funções nativas. Esta ferramenta realiza a decodificação inteiramente no seu navegador; nenhum dado é enviado a lugar nenhum.
Como decodifico uma URL que foi codificada múltiplas vezes?
Decodifique-a múltiplas vezes até que a saída estabilize (não há mais sequências % sendo resolvidas). Isso acontece quando uma URL já codificada passa por outro codificador. Cada passagem de decodificação remove uma camada de codificação.
O que %XX representa?
Os dois caracteres após % são dígitos hexadecimais representando um valor de byte único (00–FF). Para caracteres ASCII, este byte é o código ASCII do caractere: %41 = 65 = 'A'. Para caracteres não ASCII, múltiplas sequências %XX representam a sequência de bytes UTF-8 do caractere: o símbolo do euro é %E2%82%AC (três bytes: 0xE2, 0x82, 0xAC).
Qual codificação o navegador usa ao enviar formulários HTML?
Formulários HTML com method=GET adicionam os campos à URL usando a codificação application/x-www-form-urlencoded, que substitui espaços por + em vez de %20 e codifica outros caracteres especiais com porcentagem. A opção + → espaço da ferramenta URL Decode trata esse formato. Formulários com method=POST e enctype=application/x-www-form-urlencoded usam o mesmo esquema no corpo da requisição.
Há um limite de tamanho para a decodificação?
Sem limite no lado do servidor — a ferramenta roda inteiramente no seu navegador. Os limites práticos dependem da memória do seu navegador. Para strings codificadas muito longas ou processamento em lote, use decodeURIComponent em um script.