Codificador/descodificador de URL

Codifique e descodifique URLs

Aplique percent-encoding a componentes de consulta ou a cadeias URL inteiras e volte a descodificá-las. Dois modos espelham encodeURIComponent e encodeURI para alinhar com a sua stack ou documentação de API.

Use este modo para nomes e valores isolados de parâmetros de consulta, segmentos de caminho ou qualquer texto que vá dentro de um URL maior. Codifica quase todos os caracteres reservados.

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.

Codificador e descodificador de URL — codificar e descodificar online grátis