TontonTools
Desenvolvimento Web

Codificação de URL explicada: por que os espaços se tornam% 20

Enyong Carinton Tegum· February 16, 2026· 4 min de leitura
A web address shown in a browser URL bar
Photo by AS Photography on Pexels

Você já viu isso em endereços da web: %20 onde deveria estar um espaço, ou %3D em vez de um sinal de igual. Isso é codificação de URL (também chamada de codificação percentual) e, embora pareça algo sem sentido, resolve um problema real que mantém a web funcionando. Aqui está o que está acontecendo.

Por que URLs precisam de codificação

Os URLs só podem conter com segurança um conjunto limitado de caracteres — letras, dígitos e alguns símbolos. Muitos caracteres têm significado especial (? inicia uma string de consulta, & separa parâmetros, / separa segmentos de caminho) ou não são permitidos (espaços). Se você colocar esses caracteres em um URL como estão, navegadores e servidores ficarão confusos. A codificação os substitui por uma representação segura.

Como funciona

A codificação percentual substitui um caractere inseguro por um % seguido por seu valor de byte hexadecimal de dois dígitos. Um espaço é o byte 32, que é 20 em hexadecimal — daí %20. Um sinal de igual se torna %3D, um e comercial %26 e assim por diante. Codifique ou decodifique qualquer string instantaneamente com nosso codificador de URL e decodificador de URL.

Um exemplo prático

Suponha que você queira um URL de pesquisa para "café e bar". O espaço e o E comercial devem ser codificados:

https://example.com/search?q=caf%C3%A9%20%26%20bar

Observe que "é" se tornou %C3%A9 — caracteres não-ASCII são codificados como seus bytes UTF-8, que podem ter mais de um par percentual. A referência de codificação percentual MDN cobre os detalhes.

Onde é importante

  • Parâmetros de consulta: a entrada do usuário na pesquisa e nos formulários deve ser codificada para que caracteres especiais não quebrem o URL.
  • APIs: passar valores em um URL requer codificação para permanecer válido.
  • Links com rastreamento: URLs de campanha geralmente carregam valores codificados.

Armadilhas comuns

Dois grandes problemas: codificação dupla (codificar uma string já codificada, transformando %20 em %2520) e esquecer de codificar a entrada do usuário, o que pode quebrar links ou abrir falhas de segurança. Em caso de dúvida, decodifique um URL para verificar o que ele realmente contém.

Caracteres reservados versus não reservados

Nem todo caractere precisa de codificação. O padrão define caracteres não reservados — letras, dígitos e - _ . ~ — que são sempre seguros como estão. Caracteres reservados como / ? # & = têm um significado estrutural especial em uma URL, portanto devem ser codificados quando usados ​​como dados em vez de como separadores. Este é o ponto crucial do motivo pelo qual você codifica a entrada do usuário: um termo de pesquisa contendo "&" deve se tornar %26, ou o "&" seria mal interpretado como o início de um novo parâmetro.

Sinais de mais e confusão de espaço

Uma pegadinha clássica: na string de consulta de envios de formulários mais antigos, um espaço às vezes é codificado como + em vez de %20, porque é assim que os dados do formulário HTML (o formato application/x-www-form-urlencoded) funcionavam historicamente. No caminho de uma URL, um espaço é sempre %20 e um + literal significa um sinal de mais. Essa divisão é a razão pela qual o mesmo "espaço" pode aparecer de duas maneiras e por que a decodificação do contexto errado pode corromper os dados. Em caso de dúvida, decodifique e inspecione.

Codificação e segurança

A codificação adequada não envolve apenas links válidos — é um limite de segurança. Deixar de codificar (ou validar) a entrada do usuário que termina em uma URL pode permitir ataques de injeção e redirecionamentos quebrados. Frameworks geralmente fornecem funções de codificação integradas; use-os em vez de rolar manualmente e nunca confie na entrada bruta do usuário em um URL. A codificação correta mantém seus links válidos e seu aplicativo mais seguro.

Resultado

A codificação de URL troca caracteres inseguros por % mais seu valor de byte hexadecimal, para que os URLs permaneçam válidos, independentemente do que contenham. Os espaços tornam-se %20, os símbolos especiais recebem seus próprios códigos e os caracteres não-ASCII usam seus bytes UTF-8. Codifique a entrada do usuário, evite a codificação dupla e use uma ferramenta para verificar — e esses sinais enigmáticos de porcentagem deixarão de ser um mistério.

Share X / Twitter Facebook LinkedIn WhatsApp

Continue lendo

← Voltar para todos os posts

We use cookies for analytics and to keep the tools free via ads. See our Privacy Policy.