Ferramentas relacionadas
Para que serve um codificador e descodificador de URL?
Navegadores, servidores e caches tratam alguns caracteres como estrutura — espaços, e comerciais, cardinal e texto não ASCII precisam de escape quando são dados e não sintaxe. Uma ferramenta dedicada mostra a cadeia exata que um cliente HTTP enviará.
Benefícios de uma codificação de URL correta
- Transmissão segura: Caracteres reservados no conteúdo deixam de partir analisadores que dividem caminhos, consultas e fragmentos.
- Suporte Unicode: Bytes UTF‑8 podem representar-se como sequências % para que texto internacional sobreviva a canais só ASCII.
- APIs previsíveis: Alinhar com o RFC 3986 reduz discrepâncias entre front-end, aplicações móveis e frameworks de backend.
- Menos erros 400: Parâmetros bem codificados são menos rejeitados por gateways rigorosos ou proxies inversos.
- Depuração mais simples: Compare a sua cadeia manual com o que encodeURIComponent produziria antes de publicar uma correção urgente.
Como funciona a codificação de URL
O percent-encoding reescreve cada byte que não pode aparecer literalmente num segmento de URL como %HH, com HH em hexadecimal. Quais caracteres permanecem literais depende de proteger um URL inteiro ou um componente isolado.
Modos desta ferramenta
- Modo componente: Equivale a encodeURIComponent / decodeURIComponent — ideal para chaves, valores, segmentos de caminho ou texto que vai para uma query.
- Modo URL completa: Equivale a encodeURI / decodeURI — para cadeias que ainda contêm esquema, anfitrião, barras e pontuação de consulta após transformação.
- Transformação em tempo real: Cada edição passa pelo par escolhido para ver de imediato entrada mal formada ou dupla codificação.
Factos que convém recordar
Pormenores como o sinal + em envios de formulário versus percent-encoding verdadeiro confundem equipas quando os frameworks discordam.
Referência rápida
- O espaço é comummente %20 em query; formulários HTML podem usar + em corpos application/x-www-form-urlencoded.
- Só caracteres não reservados (letras, dígitos, -._~) podem ficar sem codificar em codificação estrita de componente.
- A dupla codificação (codificar uma cadeia já codificada) alonga o URL e pode confundir servidores.
- decodeURIComponent falha com % seguido de hex incompleto; corrija a origem antes de descodificar.
- Nomes de domínio internacionalizados usam Punycode no DNS; a codificação de URL trata do caminho e da query, não da conversão do nome de anfitrião ACE.
Boas práticas
Codifique na fronteira onde texto não confiável passa a fazer parte de um URL e descodifique uma vez quando o tratar novamente como dados.
- Codifique cada valor de consulta individualmente em vez de codificar o URL inteiro duas vezes.
- Registe a entrada do utilizador em bruto à parte da cadeia codificada ao depurar analítica ou redirecionamentos.
- Prefira ligações HTTPS ao partilhar URLs codificados com tokens sensíveis.
- Valide a saída descodificada antes de a injetar em HTML para evitar XSS a partir de links maliciosos.
- Teste ambos os modos se o produto suportar deep links a partir de modelos de e-mail ou SMS.
Casos de uso ideais
- Desenvolvimento web: Construa filtros de pesquisa, parâmetros UTM e URIs de redirecionamento OAuth com confiança.
- Integração com APIs: Igual ao comportamento da documentação quando referencia percent-encoding RFC 3986.
- QA e suporte: Reproduza URLs de clientes sem adivinhar que caracteres foram escapados.
- Documentação: Mostre exemplos exatos antes/depois para integrações de parceiros.
- Scripts de migração: Compare regras de escape antigas com funções modernas do navegador.
Perguntas frequentes
Qual é a diferença entre codificação de componente e de URL completa?
A codificação de componente (encodeURIComponent em JavaScript) aplica percent-encoding a quase todos os caracteres reservados — o desejável para chaves ou valores isolados na query. A codificação de URL completa (encodeURI) mantém delimitadores como : / ? & = para que uma cadeia continue a parecer um URL navegável.
Quando devo usar decodeURIComponent em vez de decodeURI?
Deve corresponder ao codificador: decodeURIComponent para um único componente; decodeURI para uma cadeia que ainda precisa de parecer um URL completo com barras e separadores de consulta.
Os meus dados são enviados para os vossos servidores?
Não. A codificação e a descodificação executam-se inteiramente no seu navegador; não há carregamento de dados.
O que significa «codificação percentual»?
Bytes que não podem aparecer literais num URL escrevem-se como % seguido de dois dígitos hexadecimais (por exemplo, um espaço torna-se %20). É o que o RFC 3986 chama percent-encoding.
Porque é que a descodificação mostrou um erro?
Sequências percentuais mal formadas (número ímpar de hexadecimais, UTF-8 inválido após descodificar ou mistura de modos) podem falhar. Verifique a cadeia e experimente o outro tipo se tiver codificado um URL completo como componente.