Todas as ferramentas

Codificador/Decodificador URL

Codifique e decodifique componentes URI e URLs completas

Como funciona

Codificador/Decodificador URLCodifique e decodifique componentes URI e URLs completas. Todo o processamento acontece no seu navegador — sem upload, sem cadastro, sem e-mail. Grátis para sempre.

Última atualização:

Sobre Codificador/Decodificador URL

URLs só conseguem transportar com segurança um pequeno subconjunto de caracteres ASCII. No momento em que você precisa colocar um espaço, uma barra, um emoji, um "ç" do português ou um valor de query string contendo "&" dentro de um link, é obrigatório fazer percent-encoding. Este encoder/decoder de URL aplica exatamente os mesmos algoritmos que o navegador usa internamente — encodeURI para URLs inteiras e encodeURIComponent para valores individuais de query string — então a saída é byte por byte idêntica ao que seu código produziria.

Use quando estiver montando um redirect OAuth, depurando um webhook que chegou com encoding duplicado, construindo um link de tracking com parâmetros UTM contendo espaços ou colando um path não-ASCII no Slack e recebendo de volta uma parede de "%C3%BC". Trocar de modo permite enxergar como caracteres reservados como "/", "?" e "&" são tratados de forma diferente entre o contexto de URL completa e de componente — que é justamente onde a maioria dos bugs de encoding se esconde.

Tudo acontece no seu navegador. Nada da URL — incluindo tokens, session ids ou PII na query string — é enviado para um servidor, registrado em log ou armazenado em cache. Isso importa quando você está depurando um link de produção que contém um parâmetro assinado de uso único que não pode vazar.

Como usar Codificador/Decodificador URL

  1. Cole sua URL ou texto bruto na caixa de entrada.
  2. Escolha o modo: encodeURIComponent para valores de parâmetros de query, ou encodeURI (URL completa) para links inteiros.
  3. Clique em Encode para converter caracteres brutos em percent-escapes, ou em Decode para reverter uma string já codificada.
  4. Copie o resultado com um clique e cole no seu código, navegador ou requisição do Postman.
  5. Se o decode mostrar "Sequência codificada inválida", procure no input por "%" soltos que não são seguidos por dois dígitos hexadecimais.

Casos de uso comuns

  • Construir URLs de redirect OAuth/SAML em que os parâmetros state e code precisam chegar intactos.
  • Codificar nomes de arquivo não-ASCII antes de colocá-los em headers Content-Disposition ou em chaves do S3.
  • Limpar URLs com encoding duplicado ("%2520" no lugar de "%20") que saíram de um proxy mal configurado.
  • Produzir valores de query string seguros para links de tracking que contêm espaços, e-comerciais ou aspas.
  • Depurar payloads de webhook em que um serviço fez URL-encode de um valor e outro decodificou duas vezes.

Dicas e erros comuns

  • Use encodeURIComponent para qualquer valor único que vai depois de "=" em uma query string. Reserve encodeURI somente para a URL inteira — ele deixa "&", "=", "?" e "/" intocados de propósito.
  • Espaços dentro de query strings devem virar "%20", não "+". A forma com "+" só se aplica a corpos application/x-www-form-urlencoded, não a paths de URL.
  • Se uma string passa por encode → decode e volta com escapes extras, seu input já estava codificado uma vez — decodifique primeiro e só então re-codifique.
  • Fragmentos de hash ("#section") são preservados por encodeURI, mas tratados como texto literal por encodeURIComponent — escolha o modo que combina com seu contexto.

Perguntas frequentes

Diferença entre encodeURI e encodeURIComponent?

encodeURI mantém caracteres estruturais de URL como /, ?, & — para URLs completos. encodeURIComponent também os percent-codifica — para valores de query parameter.

Por que recebo 'Sequência codificada inválida' ao decodificar?

A entrada contém um escape % malformado (ex. '%G1'). Verifique se cada % é seguido por dois dígitos hex válidos, ou use 'Encode' primeiro em texto cru.

Meus dados são enviados a algum lugar?

Não. Codificação/decodificação roda localmente no seu navegador — nada é enviado ou registrado.

A ferramenta lida com caracteres não-ASCII como acentos do português ou emojis?

Sim. O input é interpretado como UTF-8 antes do percent-encoding, então "ç" vira "%C3%A7" e um único emoji vira uma sequência de quatro bytes — combinando exatamente com a RFC 3986 e com o que o fetch() do navegador produz.

Posso encodar uma URL inteira com query string de uma vez só?

Use o modo "encodeURI (URL completa)" e os caracteres estruturais /, ?, #, &, = ficam intactos enquanto todo o resto é escapado. Se você precisar codificar um valor de parâmetro individual (por exemplo, uma URL de redirect aninhada dentro de outra URL), troque para encodeURIComponent só nessa parte.

Por que "+" às vezes vira "%2B" e outras vezes continua como "+"?

Em um path ou valor de query tratado por encodeURIComponent, "+" é reservado e vira "%2B". No modo encodeURI ele é considerado seguro e fica intacto. O bug mais comum é misturar os dois e ter um e-mail como "nome+tag@example.com" sendo interpretado como espaço.

Ferramentas relacionadas