Codificador e Decodificador de URL
Codifique uma URL por porcentagem ou decodifique-a para funcionar corretamente em queries e formulários.
Seu texto fica no seu aparelho
Nada para apagar depois
Seguro para URLs com tokens
Funciona em todo navegador moderno
Como funciona
- 1
Cole seu texto ou URL
Um valor de parâmetro para codificar, ou uma string com porcentagens para ler de volta.
- 2
Escolha para onde vai
Uma URL inteira, ou um único componente que fica dentro de uma — as regras mudam.
- 3
Copie o resultado
Leve para um link, uma requisição, um destino de redirecionamento ou um valor de configuração.
Por que usar esta ferramenta
Modos de componente e de URL inteira
Codifique o valor de um parâmetro ou um endereço inteiro — as regras são diferentes, e misturá-las é o bug de sempre.
Espaço tratado explicitamente
Escolha `%20` ou `+`, porque uma query string e um segmento de caminho discordam sobre qual dos dois significa espaço.
Codificação dupla evitada
Entrada já codificada é reconhecida, então `%20` não vira `%2520` em silêncio.
UTF-8 feito direito
Caracteres árabes, turcos e acentuados viram as sequências de bytes corretas, não uma saída estragada.
Nada é enviado
A conversão acontece no seu navegador — uma URL com token de sessão nunca chega a um servidor.
Grátis e sem conta
Sem cadastro, sem marca d’água e sem limite de quanto você converte.
Não existe uma única “codificação de URL” — existem duas, e elas discordam
Este é o fato que resolve quase toda a confusão em torno dessa tarefa. Codificar uma URL inteira e codificar um pedaço que entra dentro de uma URL são operações diferentes, com regras diferentes, e usar a errada é o jeito mais comum de quebrar um link. Um endereço completo precisa que seus `/`, `?`, `&`, `#` e `:` fiquem em paz, porque é a pontuação que dá forma ao endereço. Um valor solto — um termo de busca, um destino de redirecionamento, um nome de arquivo num parâmetro — precisa exatamente que esses caracteres sejam escapados, porque dentro de um valor eles são dado e não estrutura. Codifique uma URL inteira com regras de componente e você recebe uma string inútil de `%2F` e `%3A`. Codifique um componente com regras de URL inteira e uma barra no seu valor vira em silêncio um separador de caminho. Decida qual das duas você está fazendo antes de começar.
Onde no endereço você está decide o que precisa ser escapado
Decorre do acima, e vale dizer direto porque explica os casos que parecem incoerentes. Uma barra dentro de um caminho é separador e precisa continuar barra; uma barra dentro do valor de um parâmetro é só um caractere e pode ficar, embora escapar seja mais seguro. Uma interrogação no caminho começa a query string; o mesmo caractere dentro do valor de um parâmetro precisa ser `%3F` ou tudo depois dele será lido como mais parâmetros. O e comercial dentro de um valor é o caso mais afiado: deixe cru e o valor se parte em dois, então uma busca por “R&D” chega como um parâmetro chamado `D`. A regra a levar é que caracteres reservados só são reservados onde podem cumprir seu papel, e dentro de um valor eles não podem — é exatamente por isso que ali precisam ser escapados.
O sinal de mais significa duas coisas diferentes, e as duas estão certas
Espaço é o caractere que todo mundo encontra primeiro e o de história mais bagunçada. A codificação em porcentagem diz que espaço é `%20`, e num segmento de caminho essa é a única resposta certa — um `+` literal num caminho é um sinal de mais e nada mais. Mas o envio de formulários HTML definiu a própria codificação para query strings, em que espaço é `+` e um mais literal precisa ser escrito `%2B`. As duas convenções estão vivas, cada uma correta no seu contexto, e os decodificadores as tratam diferente: um em modo query string transforma `+` em espaço, um em modo caminho deixa como está. É por isso que um valor com um mais — um telefone em formato internacional, um e-mail com marcador como `nome+trabalho@exemplo.com` — chega tantas vezes com o mais trocado por espaço. Se o seu valor pode conter um mais literal, escape como `%2B` e pare de depender da convenção que o receptor escolheu.
Codificação dupla é o bug que você vai encontrar de verdade
Como `%` inicia uma sequência de escape, o próprio sinal de porcentagem precisa ser codificado, como `%25`. Essa regra sozinha cria a falha mais comum de toda essa área. Codifique uma string duas vezes e `%20` vira `%2520`, porque o `%` do primeiro resultado é escapado pela segunda passada. O resultado decodifica uma vez para `%20` — visível, literal, no meio do seu valor — em vez de um espaço. Isso acontece o tempo todo: uma URL é codificada por uma aplicação e depois codificada de novo por um framework, um manipulador de redirecionamento ou um rastreador de links que supõe ter recebido texto cru. O sintoma é um link que funciona num lugar e mostra `%2520` ou `%253A` em outro. Quando você vir um `25` na frente de outra sequência de escape, está olhando para codificação dupla, e a correção é remover um passo, não decodificar duas vezes.
Caracteres fora do ASCII são codificados como bytes, não como caracteres
A codificação em porcentagem não tem noção de letra. Ela escapa bytes, o que significa que qualquer caractere fora do ASCII precisa virar bytes antes, e o padrão para isso é UTF-8. É por isso que uma única letra árabe vira três sequências de escape e um emoji vira quatro — você está vendo os bytes UTF-8 dele escritos um por um. A consequência que vale saber é que um codificador usando outro conjunto de caracteres produz saída diferente para a mesma entrada, e é assim que uma URL com um nome dentro funciona num sistema e devolve 404 em outro. Há ainda um segundo mecanismo que as pessoas confundem com este: um nome de domínio fora do ASCII não é codificado em porcentagem de forma alguma, e sim convertido para Punycode, um esquema totalmente separado que produz os prefixos `xn--` que às vezes se vê. Caminho e consulta usam porcentagem; o host não.
Por que codificar localmente importa neste tipo de texto
Pense nas URLs que as pessoas colam num codificador. É um endereço de retorno com um token de sessão na query string. É um link assinado com um parâmetro de assinatura que expira. É uma URL de redefinição de senha que alguém está depurando, um endpoint de webhook com um segredo compartilhado, um endereço interno de administração que revela um nome de host. URLs carregam credenciais nas suas query strings muito mais vezes do que se nota, justamente porque uma query string parece configuração e não segredo. Colar uma delas num codificador hospedado manda tudo para um terceiro, e se aquela URL contém um token em funcionamento você acabou de compartilhar uma credencial viva. Esta ferramenta converte dentro da página e não transmite nada, o que você confere na aba Rede das ferramentas de desenvolvedor.
Erros comuns que vale evitar
- Codificar uma URL inteira com regras de componente. Os `/` e `:` viram `%2F` e `%3A` e o endereço deixa de ser endereço — URLs completas e valores dentro delas pedem regras diferentes.
- Deixar um e comercial cru dentro do valor de um parâmetro. Ele parte o valor em dois, então uma busca por “R&D” chega como um parâmetro extra chamado `D`; escape como `%26`.
- Supor que `+` sempre significa espaço. Significa numa query string e não num caminho, então um mais literal num telefone ou num e-mail com marcador deve ser escrito `%2B` em qualquer contexto.
- Codificar algo que já estava codificado. O `%` é escapado como `%25`, então `%20` vira `%2520` e decodifica em texto visível em vez de espaço — remova um passo em vez de decodificar duas vezes.
- Colar uma URL de retorno ou de redefinição num codificador hospedado. Query strings carregam tokens de sessão e assinaturas muito mais vezes do que se nota; codifique localmente.
Comparação
| Item | Esta ferramenta | Codificadores online | O console do navegador |
|---|---|---|---|
| Conteúdo enviado a um servidor | Nunca | Geralmente sim | Não |
| Modos componente e URL inteira | Ambos, explícitos | Muitas vezes só um | Duas funções separadas |
| Convenção de espaço selecionável | Sim | Raramente | Não |
| Codificação dupla detectada | Sim | Raramente | Não |
| Conta ou cadastro | Não precisa | Frequentemente exigido | Não precisa |
| Preço | Grátis | Grátis / planos pagos | Grátis |
Recursos
Codificar e decodificar
Os dois sentidos num lugar só, com entrada e saída lado a lado.
URL inteira versus componente
A primeira preserva `/`, `?` e `&`; o segundo escapa tudo isso, porque dentro de um valor são dados.
Espaço como `%20` ou `+`
Combine com a convenção do contexto por onde o valor viaja.
Sequências de bytes UTF-8 corretas
Caracteres fora do ASCII são codificados byte a byte, como o padrão exige.
Aguenta entradas longas
Query strings inteiras e longas cadeias de redirecionamento convertem sem teto de tamanho.
Entrada malformada sinalizada
Um `%` solto ou uma sequência de escape incompleta é reportada em vez de sumir em silêncio.
Nada para instalar
Sem console, sem runtime, sem dependências — funciona na página web.
Compatível com árabe e RTL
Interface completa em oito idiomas, incluindo árabe da direita para a esquerda.
Seguro por padrão
Servido por HTTPS, sem rastreio de conteúdo e sem envio a terceiros.
Quem usa
Desenvolvedores
Montar um parâmetro de consulta que sobrevive ao que o sistema receptor fizer com ele.
Integradores de API
Codificar um destino de redirecionamento ou endereço de retorno sem quebrar a URL que o contém.
Times de marketing
Deixar parâmetros de campanha seguros quando o valor tem espaços, e comerciais ou texto não latino.
Engenheiros de suporte
Ler de volta um link enviado por cliente para ver o que os parâmetros realmente dizem.
Perguntas Frequentes
Não. Tudo roda localmente no seu navegador — seu texto nunca é enviado, armazenado ou compartilhado.
Sim — totalmente grátis, sem conta e sem limites.