CodeKitHub
Português
Ferramentas de codificação

Codificador/Decodificador de URL Online

Codifica texto em formato percentual para utilização segura em URLs ou descodifica uma URL codificada, devolvendo-a a um formato legível. Escolha o modo «componente» (codifica tudo, para valores de parâmetros de consulta) ou o modo «URL completa» (mantém intacta a estrutura :// ? &). Funciona inteiramente no seu navegador.

O que é esta ferramenta?

A codificação de URL (codificação percentual) substitui os caracteres que não são permitidos nas URLs por um % seguido do seu valor em bytes no sistema hexadecimal — um espaço passa a ser %20 e 你 passa a ser %E4%BD%A0. Sem ela, caracteres como espaços, &, ? e texto não ASCII iriam comprometer a estrutura da URL ou seriam mal interpretados pelos servidores.

Existem duas necessidades comuns, e esta ferramenta suporta ambas: codificar um valor que vai dentro de um parâmetro de consulta (modo «componente» — codifica também /, ? e =) e codificar um URL completo, mantendo a sua estrutura (modo «URL completo» — mantém ://, ? e intactos).

Por que usar?

  • Crie cadeias de consulta de forma segura — os dados introduzidos pelo utilizador com os símbolos &, = ou espaços não irão danificar a sua URL.
  • Descodifique URLs longas e codificadas provenientes de registos, análises ou cadeias de redirecionamento para ver o que realmente dizem.
  • Tratamento correto do UTF-8 para texto em chinês, emojis e outros caracteres não ASCII.
  • Dois modos para que não codifique acidentalmente os caracteres : e / de um URL completo.
  • Gratuito, instantâneo, sem necessidade de fazer upload.

Como usar

  1. Cole o seu texto ou URL na caixa de entrada.
  2. Escolha o modo: «Componente» para valores que vão para os parâmetros de consulta, «URL completa» para URLs na íntegra.
  3. Clique em «Codificar» ou «Descodificar».
  4. Copie o resultado.

Exemplo

Entrada

https://example.com/search?q=hello world & 你好

Resultado

Component mode: https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world%20%26%20%E4%BD%A0%E5%A5%BD
Full URL mode:  https://example.com/search?q=hello%20world%20&%20%E4%BD%A0%E5%A5%BD

O modo «Component» também codifica os caracteres de estrutura; o modo «URL completo» preserva-os.

Casos de utilização comuns

  • Criação de um URL partilhável em que um termo de pesquisa ou valor de filtro provém da entrada do utilizador e pode conter espaços, «&» ou outros caracteres especiais.
  • Descodificar um URL longo de rastreamento ou redirecionamento proveniente de um e-mail ou de uma campanha publicitária, para ver o destino real e os parâmetros antes de clicar nele.
  • Investigar por que razão um parâmetro de consulta não está a ser lido corretamente por um servidor — muitas vezes, o culpado é um caractere reservado que deveria ter sido codificado, mas não foi.
  • Preparar um valor que não esteja em inglês (chinês, japonês, árabe, etc.) para utilização numa cadeia de consulta de URL.

encodeURIComponent vs. encodeURI, na prática

Estes correspondem diretamente aos dois modos desta ferramenta e correspondem a funções JavaScript reais que os programadores já conhecem: encodeURIComponent (modo de componente) codifica tudo, exceto um pequeno conjunto de caracteres não reservados, tornando-o seguro para qualquer valor único inserido numa URL — é isto que se utiliza para um parâmetro de consulta, um segmento de caminho ou um valor de fragmento de hash. encodeURI (modo de URL completa) deixa os caracteres estruturais da URL (:, /, ?, #, &, =) inalterados, pois pressupõe que está a codificar uma URL completa e já estruturada, e não um valor bruto — utilizá-la num único valor de parâmetro não codificaria os caracteres & ou = que esse valor pudesse conter, o que é o erro mais comum que as pessoas cometem ao escolher o modo errado.

Caracteres reservados vs. caracteres não reservados

A especificação URL (RFC 3986) divide os caracteres em dois grupos: caracteres não reservados (letras, dígitos, - _ . ~) são sempre seguros e nunca são codificados, enquanto os caracteres reservados (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) têm um significado especial na estrutura da URL e só precisam de ser codificados quando aparecem como dados literais, em vez de pontuação estrutural. É exatamente por isso que os dois modos existem — o modo de componentes trata os caracteres reservados como dados a proteger, enquanto o modo de URL completo os trata como estrutura a preservar. Compreender esta distinção é mais útil do que memorizar quando usar cada modo, uma vez que explica por que razão o mesmo carácter (como &) é, por vezes, codificado e, outras vezes, deixado tal como está, dependendo do papel que desempenha na URL específica.

Perguntas frequentes

Quando devo utilizar o modo de componentes em vez do modo de URL completa?

Modo «componente» (encodeURIComponent) ao codificar um único valor que vai dentro de um parâmetro de consulta — codifica os caracteres /, ?, & e = para que não prejudiquem o funcionamento da URL. Modo «URL completa» (encodeURI) ao codificar uma URL completa — mantém os caracteres estruturais para que a URL continue a funcionar.

Por que é que apareceu %20 em vez de + para os espaços?

Ambas as formas são válidas em contextos diferentes. %20 é a codificação percentual universal para um espaço; + significa espaço apenas dentro de cadeias de consulta que utilizam o formato mais antigo «application/x-www-form-urlencoded». Esta ferramenta utiliza %20, que funciona em qualquer lugar.

Por que é que a descodificação falha e apresenta um erro?

A entrada contém uma sequência de por cento malformada, como um % que não é seguido por dois dígitos hexadecimais. Isto acontece frequentemente quando um URL foi cortado ou descodificado duas vezes. Corrija ou remova a sequência de % incorreta.

O que é a codificação dupla?

Codificação de texto já codificado: %20 passa a ser %2520 porque o próprio % é codificado como %25. Trata-se de um erro comum — se a saída descodificada ainda contiver códigos %, descodifique-a mais uma vez.

Isto suporta caracteres chineses e emojis?

Sim. O texto é codificado como bytes UTF-8, pelo que «你好» passa a ser «%E4%BD%A0%E5%A5%BD» e é descodificado na íntegra — o mesmo comportamento que os navegadores utilizam.

Ferramentas relacionadas