acento.io
Ferramenta dev

Codificador e decodificador de URL

Codifique e decodifique URLs com precisão RFC 3986 — 100% no navegador, sem enviar nenhum dado a servidores.

Por Carlos Suárez , Engenheiro de sistemas
Última atualização:

O que este codificador e decodificador de URL faz

Esta versão em português converte qualquer texto em percent-encoding válido segundo a RFC 3986 — e inverte a operação com um clique. Caracteres acentuados como 'ã' e 'õ' ocupam dois bytes em UTF-8, o que costuma causar bugs em parsers antigos quando a codificação não é feita corretamente. A ferramenta lida com esses casos sem surpresas. Você pode escolher entre o modo encodeURI, que preserva caracteres reservados como /, ? e &, e o modo encodeURIComponent, que codifica tudo — ideal para valores individuais de query string. 100% no navegador — seus dados nunca saem do seu computador. Sem uploads, sem rastreamento, sem logs em servidor.

Recursos

  • Dois modos de codificação. Alterne entre encodeURI (preserva estrutura da URL) e encodeURIComponent (codifica todos os caracteres reservados como &, = e #), conforme o contexto exige.
  • Suporte completo a UTF-8. Caracteres multibyte do português — acentos, cedilha, til — são codificados corretamente em sequências percent-encoded de dois ou três bytes, evitando truncamentos em APIs legadas.
  • Decodificação de HTTP encoding. Cole qualquer URL com percent-encoding, incluindo sequências como %20, %C3%A3 ou %2F, e veja o texto original instantaneamente. Útil para depurar logs de servidor e requisições HTTP.
  • Detecção de double-encoding. Se %20 for codificado novamente e virar %2520, a URL quebra silenciosamente. A ferramenta exibe o resultado de forma que o problema fica visível antes de você copiar.
  • Privacidade garantida. Nenhum dado é enviado a servidores. Tudo acontece no seu navegador via JavaScript puro — seguro para query strings com tokens de OAuth, e-mails ou qualquer informação sensível.
  • Cópia com um clique. Botão de cópia integrado copia o resultado direto para a área de transferência, sem selecionar texto manualmente.

Como usar o codificador e decodificador de URL

Escolha a aba desejada, cole ou digite o texto e o resultado aparece em tempo real.

  1. Selecione a aba. Clique em "Codificar" para converter texto simples em URL percent-encoded, ou em "Decodificar" para reverter uma URL já codificada.
  2. Digite ou cole o conteúdo. Cole o valor que precisa ir na query string. Por exemplo, encodeURIComponent('a b&c=d') em JavaScript produz a%20b%26c%3Dd — o mesmo que esta ferramenta gera no modo componente.
  3. Escolha o modo de codificação. Marque "Codificar como componente" quando o texto for um valor de parâmetro (como um redirect URI ou um termo de busca). Deixe desmarcado para codificar uma URL inteira preservando /, ? e &.
  4. Copie o resultado. Clique em "Copiar" e cole diretamente no seu código, terminal ou configuração. Em Python: from urllib.parse import quote; quote('a b&c=d') produz o mesmo resultado.

Casos de uso comuns

  • Parâmetros de query string em APIs. Ao montar URLs para chamadas REST, valores como datas, endereços ou nomes com espaços precisam ser codificados. Um & sem codificação quebra o parser e divide o parâmetro em dois.
  • Redirect URIs em fluxos OAuth. Provedores como Google e GitHub exigem que o redirect_uri seja percent-encoded quando passado como parâmetro. Errar a codificação gera erros 400 difíceis de depurar. Se você também trabalha com identificadores únicos nesses fluxos, o [gerador UUID](/pt/uuid-generator/) pode ajudar.
  • Depuração de logs de servidor. Logs de acesso HTTP frequentemente exibem URLs codificadas. Colar a linha no decodificador revela o caminho e os parâmetros legíveis em segundos, sem precisar de ferramentas externas.
  • URLs para rastreamento de campanha. Parâmetros UTM com nomes de campanhas como "Verão Recife 2026" precisam ter os espaços e acentos codificados para que ferramentas de analytics os interpretem corretamente.
  • Compartilhamento de dados em QR Codes. Quando o conteúdo de um QR Code é uma URL com parâmetros dinâmicos, codificar os valores evita que scanners interpretem mal os delimitadores. Para gerar o código depois, o [gerador de QR Code](/pt/qr-code-generator/) aceita a URL já codificada.

Perguntas frequentes

Qual a diferença entre encodeURI e encodeURIComponent?

encodeURI foi criado para codificar uma URL completa, então preserva caracteres como /, ?, & e = — que fazem parte da estrutura. Já encodeURIComponent codifica tudo, inclusive esses caracteres, e é o correto para codificar um valor individual de parâmetro, como um e-mail ou um token.

Por que o espaço às vezes vira %20 e às vezes vira +?

Na codificação RFC 3986 (usada em caminhos e query strings de URL), o espaço vira %20. O + como substituto do espaço é uma convenção do formato application/x-www-form-urlencoded, usado em formulários HTML. São contextos diferentes e misturá-los causa bugs em servidores que não normalizam os dois formatos.

Esta ferramenta é segura para codificar tokens e dados sensíveis?

Sim. Todo o processamento acontece no seu navegador — nenhum dado é transmitido ou armazenado em qualquer servidor. Você pode codificar tokens de API, redirect URIs com informações de sessão ou qualquer dado privado sem risco de exposição.

O que é double-encoding e como evitar?

Double-encoding ocorre quando uma string já codificada é codificada novamente: %20 vira %2520. O resultado parece válido mas quebra na hora de decodificar, pois o servidor recebe %20 literal em vez de um espaço. Para evitar, decodifique primeiro se não tiver certeza se o valor já está encoded, depois re-encode uma única vez.

Como codificar URLs em Python ou no terminal?

Em Python, use from urllib.parse import quote; quote('texto aqui', safe='') para codificar um valor de parâmetro. No terminal com jq: jq -rR @uri <<< 'texto aqui'. Para decodificar em Python: from urllib.parse import unquote; unquote('%C3%A3') retorna ã.

Por que acentos como 'ã' geram múltiplos percent-codes?

Porque UTF-8 representa esses caracteres com dois bytes. O 'ã' (U+00E3) vira %C3%A3 — dois grupos de dois hex digits, um para cada byte. A RFC 8259 (JSON) adota UTF-8 como padrão justamente por cobrir todos os caracteres do português e de outros idiomas sem ambiguidade. Parsers que esperam ASCII puro costumam falhar nesses casos se a codificação não for feita. Para conversões relacionadas a dados binários, veja também o [codificador e decodificador Base64](/pt/base64/).