URL Encoder / Decoder

Codifique texto para uso seguro em URLs, ou descodifique percent-encoding para ler URLs de forma legível.

Texto original
Resultado

Como funciona

  1. 1Escolha entre codificar e descodificar.
  2. 2Cole o texto na primeira caixa.
  3. 3O resultado atualiza em tempo real.

Fórmula

encodeURIComponent(x) → percent-encoding conforme RFC 3986

Espaços tornam-se %20, 'é' torna-se %C3%A9, '&' torna-se %26.

Exemplos

Query string

?q=maçã torna-se ?q=ma%C3%A7%C3%A3 para funcionar em qualquer servidor.

Redirects OAuth

O parâmetro redirect_uri tem de ser codificado para não quebrar.

Dicas

  • Codifique parâmetros individualmente, nunca a URL inteira.
  • encodeURI é diferente de encodeURIComponent — este segundo é o mais seguro.
  • Nunca duplique a codificação (%2520 é %20 duplamente codificado).

Perguntas Frequentes

Calculadoras relacionadas

Guarde esta calculadora

Poupe tempo. Adicione aos favoritos e regresse sempre que precisar.

Ver todas

Artigo completo

As URLs foram desenhadas para conter apenas um subconjunto restrito de caracteres ASCII: letras, dígitos e alguns símbolos reservados como '/', ':', '?' e '#'. Qualquer outro caractere — espaços, acentos, cedilhas, emojis, sinais de pontuação — tem de ser codificado para percent-encoding conforme definido no RFC 3986. Sem esta codificação, servidores diferentes interpretariam de forma incompatível, quebrariam redirects e produziriam parâmetros truncados.

Este codificador usa encodeURIComponent, a função JavaScript recomendada para codificar valores individuais de query string. Ao contrário de encodeURI (que preserva os separadores estruturais assumindo que recebe uma URL completa), encodeURIComponent codifica também ':', '/', '?', '#', '&' e '=' — evitando que valores contendo estes caracteres sejam confundidos com estrutura de URL.

A codificação percent-encoding funciona byte a byte na representação UTF-8 do texto. O espaço (0x20) torna-se '%20'; a letra 'é' (0xC3 0xA9 em UTF-8) torna-se '%C3%A9'; um emoji 🎉 (4 bytes em UTF-8) torna-se '%F0%9F%8E%89'. Este esquema garante compatibilidade com qualquer servidor no mundo, independentemente da configuração local.

Casos práticos: parâmetros de pesquisa (?q=café latte → ?q=caf%C3%A9%20latte), URLs de callback em OAuth (redirect_uri tem de ser codificado para não colidir com os outros parâmetros), links de partilha em redes sociais (o texto do tweet a partilhar deve ser codificado), APIs REST com filtros complexos, links deep dentro de aplicações móveis.

Erros comuns a evitar: codificar duas vezes — se vir '%2520' onde esperava '%20', o texto foi codificado uma vez e depois recodificado; usar encodeURI onde devia ter usado encodeURIComponent, preservando caracteres que deveriam ser codificados; esquecer que '+' pode representar espaço em application/x-www-form-urlencoded mas não em URLs propriamente ditas (onde '+' significa literalmente '+').

Este descodificador aceita ambas as convenções e reverte perfeitamente qualquer codificação feita por encodeURIComponent, encodeURI ou pelas rotinas equivalentes de Python, PHP, Java e outras linguagens.