🧰 ToolPicoTodas as ferramentas →

InícioBlog › Porque é que o meu link parte quando tem espaços ou acentos?

Porque é que o meu link parte quando tem espaços ou acentos?

Se já colaste um endereço com um espaço, um "é" ou um emoji num navegador e viste o link a quebrar ou a redirecionar para o sítio errado, o problema tem nome: falta de codificação URL. Este guia explica o que se passa e como resolver com o codificador/descodificador gratuito da ToolPico.

Índice

O que é a codificação URL, e porque é necessária

Resposta curtaA codificação URL (codificação percentual) transforma os caracteres que um URL não consegue transportar em segurança — espaços, acentos, emoji, símbolos como &, ? e # — num formato %XX que qualquer navegador ou servidor interpreta sem ambiguidade.

Um URL tem uma estrutura rígida: certos caracteres, como &, ? e #, têm um significado especial (separar parâmetros, marcar o início de uma query string, indicar uma âncora). Se o teu texto contiver esses caracteres, ou simplesmente um espaço ou uma letra acentuada, o navegador ou o servidor pode interpretá-los mal e cortar o endereço a meio.

A solução é a codificação percentual: cada carácter problemático é convertido nos seus bytes UTF-8, e cada byte é escrito na forma %XX (dois dígitos hexadecimais). Um espaço torna-se %20; a letra "é" ocupa 2 bytes em UTF-8 e torna-se %C3%A9. A ferramenta Codificador/Descodificador URL da ToolPico faz esta conversão instantaneamente, no separador "Codificar", incluindo texto com emoji.

Nota: os exemplos numéricos de bytes aqui (como "2 bytes para é") são factuais sobre a norma UTF-8, não estatísticas de utilização — servem apenas para ilustrar a mecânica da codificação.

encodeURIComponent vs. encodeURI: qual usar

Resposta curtaencodeURIComponent() serve para codificar um único valor (um parâmetro), e também codifica &, =, ? e /. encodeURI() serve para um endereço completo e preserva os caracteres estruturais que o URL precisa para funcionar.

Esta é provavelmente a confusão mais comum entre quem trabalha com formulários, APIs ou parâmetros de pesquisa. Se codificares um endereço inteiro com encodeURIComponent, vais acabar por codificar também o https:// e as barras, partindo o link. Se codificares apenas um valor de parâmetro com encodeURI, símbolos como & ou = dentro do próprio valor não serão protegidos, e podem confundir-se com a estrutura da query string.

Regra prática: usa encodeURIComponent quando o texto é um único valor que vai dentro de um parâmetro (ex.: um termo de pesquisa, um nome). Usa encodeURI apenas quando tens o endereço inteiro, incluindo protocolo e caminho, e queres apenas escapar os caracteres verdadeiramente inseguros dentro dele.
Texto originalencodeURIComponentencodeURI
tenis de corridatenis%20de%20corridatenis%20de%20corrida
café & chácaf%C3%A9%20%26%20ch%C3%A1caf%C3%A9%20&%20ch%C3%A1
https://loja.pt/produto?a=1https%3A%2F%2Floja.pt%2Fproduto%3Fa%3D1https://loja.pt/produto?a=1

Repara na última linha da tabela acima (dados de exemplo ilustrativos): encodeURIComponent destrói a estrutura de um URL completo, enquanto encodeURI a mantém intacta — é exatamente por isso que a ferramenta oferece os dois modos em separado, no separador "Codificar".

Query strings e o problema dos parâmetros de tracking

Resposta curtaUma query string é o conjunto de pares chave=valor depois do "?" num URL. Muitos links partilhados nas redes sociais acumulam parâmetros de tracking como utm_source, gclid ou fbclid que não afetam o conteúdo mas tornam o link mais comprido e menos privado.

No separador "Analisar Query" da ferramenta, cola-se um URL completo e cada parâmetro aparece decomposto numa tabela, já descodificado — e os parâmetros de tracking conhecidos são assinalados automaticamente. Isto ajuda a perceber rapidamente o que um link está realmente a rastrear antes de o partilhares.

Cenário prático: imagina que recebes um link de uma loja online partilhado por um amigo, algo como https://loja.exemplo.com/produto?cor=vermelho&tamanho=42&utm_source=instagram&fbclid=abc123. Colando isto no separador "Analisar Query", vês de imediato que só cor e tamanho são relevantes para o produto — o resto é tracking que podes remover antes de reenviar o link a outra pessoa. Depois, no separador "Construir Query", consegues gerar uma versão limpa apenas com os parâmetros que interessam.

Base64 não é a mesma coisa que codificação URL

Resposta curtaBase64 converte texto ou dados binários num alfabeto de 64 caracteres, usado para tokens ou pequenos ficheiros — não tem relação direta com a estrutura de um URL. A codificação URL torna seguros especificamente os caracteres especiais dentro de um endereço.

É comum confundir os dois porque ambos "transformam" texto num formato diferente, mas servem propósitos distintos. Uma cadeia Base64 pode inclusive precisar de codificação URL adicional, porque o alfabeto Base64 inclui os caracteres + e /, que têm significado especial num URL. A ferramenta ToolPico inclui ambas as conversões — Base64 e codificação percentual — na mesma interface, para que não seja preciso adivinhar qual delas se aplica ao teu caso.

Vale também mencionar a descodificação multinível: quando um valor é codificado duas vezes por engano (um sistema mal configurado, por exemplo), obtém-se algo como %2520 em vez de %20. Ativando a opção "descodificação multinível" no separador "Descodificar", a ferramenta resolve automaticamente cada camada até chegar ao texto original, sem teres de descodificar manualmente várias vezes.

Experimenta os 6 modos — codificar, descodificar, massa, analisar query, construir query e analisar URL — tudo no teu navegador.

Experimentar a ferramenta →

Perguntas frequentes

O que é a codificação URL?
A codificação URL (codificação percentual) converte os caracteres que não podem ser usados diretamente num URL — espaços, letras acentuadas, emoji e símbolos reservados como &, ? e # — num formato %XX que os navegadores e servidores conseguem interpretar sem risco. Por exemplo, um espaço converte-se em %20 e uma letra acentuada como é converte-se em %C3%A9 em UTF-8.
Qual a diferença entre encodeURIComponent e encodeURI?
encodeURIComponent() codifica uma única parte de um URL, como um valor de consulta, e também codifica caracteres estruturais como &, =, ? e /. encodeURI() codifica um URL inteiro e deixa intactos os caracteres que um URL precisa para funcionar, como :, /, ?, # e &. Usa encodeURIComponent para um único parâmetro, e encodeURI para um endereço completo.
Porque é que às vezes vejo um valor duplamente codificado como %2520?
%2520 é o que se obtém quando um %20 já codificado (um espaço) é codificado uma segunda vez, porque o próprio carácter % é codificado como %25. Isto costuma ser sinal de que um sistema está a codificar por engano os mesmos dados duas vezes. Ativar a descodificação multinível no separador "Descodificar" resolve cada camada aninhada até chegar ao texto original numa única passagem.
Como se remove os parâmetros de tracking (UTM, fbclid) de um link?
Cola o URL completo no separador "Analisar Query" da ferramenta: os parâmetros conhecidos de tracking, como utm_source, utm_medium, gclid ou fbclid, são assinalados automaticamente numa tabela, o que permite identificá-los e construir depois uma versão limpa do link sem esses parâmetros.
Posso codificar ou descodificar vários links de uma vez?
Sim. No separador "Massa" cola-se um texto ou URL por linha, escolhe-se a operação (encodeURIComponent, encodeURI ou descodificar) e cada linha é processada de forma independente, devolvendo os resultados pela mesma ordem — útil para dezenas de parâmetros ou ligações de uma só vez.
Nota: este artigo tem carácter informativo e educativo sobre normas técnicas de codificação de URL (UTF-8, RFC 3986). Os exemplos numéricos e de texto são ilustrativos/hipotéticos e não representam dados reais de nenhum utilizador ou sistema. Para casos de uso críticos, consulta sempre a documentação oficial da norma ou de segurança da tua plataforma.