URL Encoder e Decoder

encodeURIComponent e decodeURIComponent no navegador para query strings e APIs.

{{ url.message }}

Descrição

A URL foi inventada por Tim Berners-Lee em 1991, junto com o HTML e o HTTP, como parte do projeto que se tornaria a World Wide Web. O formato que vemos hoje — aquele `https://exemplo.com/pagina?parametro=valor&outro=123` — foi formalizado no RFC 1738 em 1994 e refinado até o RFC 3986 em 2005. Existe um problema intrínseco no design original: a URL precisa ser transmitida como texto ASCII puro, mas o mundo fala centenas de idiomas com acentos, caracteres especiais e scripts completamente diferentes do alfabeto latino. A solução foi o percent-encoding: qualquer byte que não seja um caractere ASCII seguro é representado como `%` seguido de dois dígitos hexadecimais. A letra `ã` em UTF-8, por exemplo, ocupa dois bytes — 0xC3 e 0xA3 — e vira `%C3%A3`.

A parte que quase todo desenvolvedor aprende da forma difícil é a diferença entre `encodeURIComponent` e `encodeURI`. A função `encodeURI` preserva os caracteres estruturalmente significativos numa URL — `/`, `?`, `#`, `&`, `=` — porque foi feita para codificar uma URL completa. Já `encodeURIComponent` codifica tudo isso também, porque foi feita para codificar um valor dentro da URL, onde `/`, `?` e `&` não podem aparecer sem codificação. Quando você monta uma query string manualmente com concatenação de string, qualquer valor contendo `&`, `=`, `+` ou `#` vai silenciosamente quebrar o parsing no servidor. Isso acontece muito mais do que deveria, especialmente com nomes que contêm apóstrofo, espaços ou — a campeã dos bugs de encoding — o `@` em endereços de e-mail passados como parâmetro.

Um cuidado importante ao trabalhar com encoding de URL é o double encoding — codificar algo que já está codificado. Se você recebe uma URL que já contém `%20` e passa por `encodeURIComponent`, o `%` vira `%25` e o resultado final é `%2520`, que o servidor interpreta como a string literal `%20` em vez de um espaço. Outro ponto que confunde é a diferença entre `%20` e `+` para representar espaços: formulários HTML usam `+` no formato `application/x-www-form-urlencoded`, mas o RFC 3986 especifica `%20`. A maioria dos servidores aceita os dois, mas em contextos como assinaturas de API — AWS, por exemplo — a diferença é crítica e pode gerar erros de autenticação notoriamente difíceis de depurar.

Detalhamento técnico

Pontos frequentes

  • Para que serve esta ferramenta?: Ela roda 100% no seu navegador: útil para validar, formatar ou converter dados no dia a dia de desenvolvimento.
  • Meus dados são enviados a algum servidor?: O processamento é feito localmente via JavaScript. Não armazenamos o conteúdo que você cola nas caixas de texto.
  • Posso usar em produção ou para dados reais?: Use por sua conta e risco. Para segredos (senhas, tokens), prefira ambientes controlados e políticas da sua empresa. E lembre sempre de revisar os conteúdos gerados. Nunca confie cegamente nas coisas que vê na internet.

Trecho para testar

  • Há também o bloco "Exemplo de Código" com o trecho completo; use esse texto rápido para colar nos campos e validar: Query — nome=João Silva → nome=Jo%C3%A3o%20Silva

Guia da ferramenta

  • O que é URL encoding (percent-encoding) Caracteres reservados ou não ASCII em URLs são escritos como % seguido de dois dígitos hex (ex.: espaço como %20). Query strings e fragmentos precisam disso para não quebrar o parse.

  • O que a ferramenta faz Aplica encodeURIComponent / decodeURIComponent no texto.

  • Por que usar Montar links com nomes acentuados, depurar redirects, testar integrações com parâmetros especiais.

Exemplo de Código

Exemplo de código
nome=João Silva → nome=Jo%C3%A3o%20Silva

Query

nome=João Silva → nome=Jo%C3%A3o%20Silva

Perguntas frequentes

Para que serve esta ferramenta?

Ela roda 100% no seu navegador: útil para validar, formatar ou converter dados no dia a dia de desenvolvimento.

Meus dados são enviados a algum servidor?

O processamento é feito localmente via JavaScript. Não armazenamos o conteúdo que você cola nas caixas de texto.

Posso usar em produção ou para dados reais?

Use por sua conta e risco. Para segredos (senhas, tokens), prefira ambientes controlados e políticas da sua empresa. E lembre sempre de revisar os conteúdos gerados. Nunca confie cegamente nas coisas que vê na internet.