Codificador / Decodificador de URL
Codifique ou decodifique URLs e strings de consulta.
O que é a codificação de URL?
A codificação de URL (também chamada de codificação por percentagem) é o mecanismo para converter caracteres que não são permitidos numa URL para um formato hexadecimal seguro. Cada caractere não seguro é substituído por um sinal de percentagem seguido de dois dígitos hex que representam o seu código ASCII. Por exemplo, um espaço torna-se %20, um ampersand torna-se %26 e um cardinal torna-se %23.
As URLs só podem conter um conjunto limitado de caracteres definido pela RFC 3986: letras (A–Z, a–z), dígitos (0–9) e alguns caracteres especiais (- _ . ~ ! * ' ( )). Todos os outros caracteres — incluindo espaços, letras não ASCII e caracteres reservados como & = ? # — devem ser codificados por percentagem antes de serem incluídos numa URL.
Quando precisa de codificar uma URL?
- Ao passar caracteres especiais em parâmetros de query string (ex.: ?q=hello%20world).
- Ao codificar dados de formulários enviados via HTTP POST com o tipo de conteúdo application/x-www-form-urlencoded.
- Ao construir URLs de pedidos de API programaticamente com input fornecido pelo utilizador.
- Ao incorporar URLs dentro de outras URLs (ex.: parâmetros de redirecionamento).
- Ao incluir caracteres Unicode (letras acentuadas, emoji, caracteres CJK) em URLs.
Codificação vs. descodificação
A codificação converte texto simples numa string segura para URL, substituindo caracteres não seguros por equivalentes codificados por percentagem. A descodificação inverte este processo, convertendo sequências codificadas por percentagem de volta aos seus caracteres originais. Esta ferramenta permite alternar entre as direções de codificação e descodificação com um único clique.
Como utilizar esta ferramenta
Cole ou escreva texto no campo de entrada. Selecione o modo de codificação ou descodificação. O output atualiza instantaneamente. Clique no botão de troca para inverter a direção usando o output atual como nova entrada. Isto é útil quando precisa de codificar uma string e depois verificar o resultado descodificando-a novamente.
Caracteres que são codificados
Esta ferramenta usa a função encodeURIComponent() do JavaScript, que codifica todos os caracteres exceto: A–Z, a–z, 0–9 e os caracteres não reservados - _ . ! ~ * ' ( ). Esta é a codificação correta para valores de parâmetros de query e dados de formulários. A função similar encodeURI() é menos agressiva e preserva caracteres como : / ? # que têm significado na estrutura da URL.
Erros comuns na codificação de URL
O erro mais comum é a dupla codificação — codificar uma string já codificada, transformando %20 em %2520. Isto quebra URLs e confunde servidores. Verifique sempre se a entrada já está codificada antes de aplicar a codificação. Outro erro é usar encodeURI() quando encodeURIComponent() é necessário, o que deixa & e = não codificados nos valores dos parâmetros.
Não codificar o input do utilizador antes de o inserir em URLs é uma vulnerabilidade de segurança. O input não codificado pode injetar parâmetros extra de query, quebrar a análise de URL ou permitir ataques de injeção. Codifique sempre os valores fornecidos pelo utilizador ao construir URLs programaticamente.
Dicas práticas
No desenvolvimento web, a maioria dos frameworks trata a codificação de URL automaticamente nas submissões de formulários e bibliotecas cliente HTTP. A codificação manual é tipicamente necessária ao construir URLs dinamicamente em JavaScript, ao passar dados em fragmentos de URL ou ao depurar chamadas de API que incluem caracteres especiais.
Perguntas frequentes
Qual é a diferença entre %20 e + para espaços?
Ambos representam espaços, mas em contextos diferentes. %20 é a codificação de URL padrão para espaços e funciona em todo o lado. O sinal + representa espaços apenas em query strings usando o formato application/x-www-form-urlencoded (submissões de formulários HTML). Em caso de dúvida, use %20.
Preciso de codificar caracteres UTF-8?
Sim. Os caracteres não ASCII (letras acentuadas, emoji, caracteres chineses, etc.) devem ser codificados em UTF-8 e depois codificados por percentagem para inclusão em URLs. A função encodeURIComponent() do JavaScript trata ambos os passos automaticamente, convertendo caracteres como é para %C3%A9.