Codificar e decodificar URL
Codifique e decodifique URLs online (encodeURIComponent x encodeURI), com erro apontado e analisador de URL com parâmetros editáveis. Roda no navegador.
Codificar e decodificar URL
encodeURIComponent · para um valor de parâmetro ou trecho do caminho; codifica também / ? & = #.
Padrão application/x-www-form-urlencoded: espaço vira + e o + do texto vira %2B.
Qual usar: encodeURIComponent ou encodeURI?
- encodeURIComponent (Componente): para um pedaço que vai dentro da URL, como o valor de um parâmetro (?q=…) ou um segmento do caminho. Codifica também / ? & = #, que de outro jeito quebrariam a URL.
- encodeURI (URL completa): para uma URL inteira que só tem espaços ou acentos. Mantém a estrutura (protocolo, barras, ?, &, #). Nunca use em um valor de parâmetro: um & no valor viraria um novo parâmetro.
- Espaço como +: é o formato dos formulários HTML (application/x-www-form-urlencoded). Em query strings, + costuma significar espaço; no caminho, não.
| Caracteres | encodeURI | encodeURI |
|---|---|---|
| A–Z a–z 0–9letras e números | mantém | mantém |
| - _ . ! ~ * ' ( )marcas seguras | mantém | mantém |
| ; , / ? : @ & = + $ #separadores de URL | codifica (%3B %2F %3F…) | mantém |
| ␣espaço | %20 | %20 |
| ç é 😀acentos e emoji | UTF-8 (%C3%A7…) | UTF-8 (%C3%A7…) |
| %porcentagem | %25 | %25 |
Cole uma URL para ver as partes e editar os parâmetros.
Tira utm_*, fbclid, gclid, msclkid, mc_cid/mc_eid, igshid, si (YouTube e Spotify) e outros parâmetros de campanha. O resto de cada URL fica exatamente como estava.
Espaços no começo e no fim de cada linha são ignorados; linha vazia continua vazia no resultado, para dar para colar ao lado da planilha.
Tudo roda no seu navegador: nada do que você digita é enviado a um servidor ou salvo, e a ferramenta funciona offline depois de carregada.
Como usar
A ferramenta tem duas abas.
- Codificar / decodificar: escolha a operação e o tipo (Componente ou URL completa) e digite ou cole o texto. O resultado aparece enquanto você digita, junto com a saída das duas funções lado a lado para comparar. Inverter usa o resultado como nova entrada. Se a decodificação encontrar uma sequência inválida, a ferramenta mostra o trecho e a coluna exatos e entrega um resultado parcial.
- Analisar URL: cole um endereço completo para ver protocolo, host, caminho, fragmento e cada parâmetro da query numa tabela editável. Mude um valor, apague ou adicione parâmetros e copie a URL reconstruída. Parâmetros que você não tocou continuam exatamente como estavam.
O que é codificação de URL
Uma URL só pode ter um conjunto limitado de caracteres. Espaços, acentos, emoji e símbolos com significado especial (como &, ? e #) precisam ser escritos como sequências percentuais: um % seguido de dois dígitos hexadecimais para cada byte do caractere em UTF-8. Assim, o espaço vira %20, o é vira %C3%A9 (dois bytes) e o 😀 vira %F0%9F%98%80 (quatro bytes). Decodificar é o caminho inverso.
encodeURIComponent ou encodeURI?
As duas funções do JavaScript codificam espaços, acentos e emoji. A diferença está nos separadores de URL: ; , / ? : @ & = + $ #.
- encodeURIComponent codifica também os separadores. Use para um pedaço da URL: o valor de um parâmetro, um termo de busca, um segmento do caminho. Exemplo: o termo
pão & cafévirap%C3%A3o%20%26%20caf%C3%A9, e o&não é confundido com o início de outro parâmetro. - encodeURI mantém os separadores. Use numa URL inteira que só tem espaços ou acentos: em
https://site.com/café?q=a b, ela troca só oé(por%C3%A9) e o espaço (por%20) e deixa:,/e?como estão, com a estrutura intacta.
Na dúvida, monte a URL por partes e aplique encodeURIComponent em cada valor. É o jeito mais seguro.
%20 ou +?
Os dois podem representar espaço, mas em lugares diferentes. Formulários HTML enviam os dados no formato application/x-www-form-urlencoded, em que o espaço vira + e o + de verdade vira %2B. Por isso, na query string, ?q=a+b costuma ser lido como "a b". No caminho da URL, porém, + é só um sinal de mais. A opção Espaço como + aplica a regra dos formulários nas duas direções.
Anatomia de uma URL
Um endereço de loja como https://loja.com:8080 + /busca/cafe + ?q=latte&pagina=2 + #resultados (tudo junto, sem espaços) se divide assim:
- Protocolo:
https: - Host:
loja.com, com a porta8080(opcional) - Caminho:
/busca/cafe - Query:
q=latte&pagina=2, pares chave=valor separados por& - Fragmento:
#resultados, que aponta para um trecho da página e não é enviado ao servidor
Sem o protocolo (loja.com/busca), o analisador assume https:// e avisa.
Erros comuns
- Dupla codificação: codificar um texto que já estava codificado transforma
%20em%2520. Se o texto já tem sequências%XX, a ferramenta avisa. - encodeURIComponent na URL inteira: o resultado (
https%3A%2F%2F…) deixa de funcionar como link. Codifique só os valores. - encodeURI num valor de parâmetro: um
&ou=dentro do valor passa intacto e quebra a query. - Domínios com acento: o navegador converte
café.comparaxn--caf-dma.com(Punycode). O analisador mostra as duas formas. - + em valores: um telefone como
+55 11…enviado sem codificar pode chegar como espaço. Codifique o+como%2B. - Sequências quebradas: um
%solto (como em "100% grátis") ou bytes UTF-8 incompletos fazem odecodeURIComponentfalhar. Aqui você vê exatamente onde está o problema.
Privacidade
Tudo acontece no seu navegador. Nada do que você digita é enviado a um servidor ou fica salvo, e a ferramenta continua funcionando offline depois de carregada. Mesmo assim, evite compartilhar URLs que tragam senhas ou tokens.