Está Calculado

Codificador e Decodificador de URL

O Codificador de URL transforma espaços, acentos e caracteres especiais em percent-encoding, como espaço em %20. Use “componente” para valores de parâmetros e “URL completa” para preservar separadores como /, ?, & e =. A ferramenta também decodifica sequências percentuais e avisa quando encontra um código malformado.

Use para valores inseridos dentro de uma URL, como uma busca ou mensagem.

Resultado

caf%C3%A9%20com%20p%C3%A3o%20%26%20queijo

estacalculado.com.br

Resumo

Percent-encoding permite representar espaços, acentos e símbolos dentro de URLs usando o formato %HH. O método correto depende do contexto: um endereço completo e um valor de parâmetro não devem ser codificados da mesma maneira.

O que é percent-encoding em uma URL?

Uma URL possui caracteres com funções estruturais e um conjunto de caracteres que pode aparecer diretamente. Quando outro byte precisa ser representado, usa-se o sinal de porcentagem seguido por dois dígitos hexadecimais. O espaço ASCII tem valor hexadecimal 20 e, por isso, aparece como %20.

Caracteres do português são tratados como UTF-8 antes da conversão. A letra ç, por exemplo, ocupa os bytes hexadecimais C3 e A7 e vira %C3%A7. A palavra ação passa a conter várias sequências percentuais, mas volta ao original quando os bytes são decodificados corretamente.

Quando devo codificar um componente da URL?

Use a codificação de componente quando o texto será colocado dentro de um parâmetro, trecho de caminho ou valor de busca. Imagine a URL https://exemplo.com/busca?q=.... Se a consulta for café & pão, o & comercial não pode permanecer solto, pois seria interpretado como o início de outro parâmetro.

Nesse caso, encodeURIComponent produz um valor seguro e codifica símbolos como &, =, ? e #. O servidor consegue separar a estrutura da URL e depois recuperar exatamente o valor enviado pelo usuário.

Quando devo codificar uma URL completa?

Ao trabalhar com um endereço inteiro, é necessário preservar os símbolos que indicam protocolo, caminho, consulta e fragmento. encodeURI mantém caracteres como dois-pontos, barras, interrogação e cerquilha, enquanto converte espaços, acentos e outros caracteres incompatíveis.

Por exemplo, uma URL completa com a pasta São Paulo precisa codificar o espaço e o ã, mas não deve transformar todas as barras em dados comuns. Se você aplicar a codificação de componente ao endereço inteiro, ele continuará sendo texto válido, porém perderá a estrutura necessária para funcionar diretamente como link.

Como evitar dupla codificação e links quebrados?

Antes de codificar, descubra se a entrada já contém sequências como %20 ou %C3%A7. Codificar o mesmo valor duas vezes transforma o sinal % em %25. Assim, %20 vira %2520, e uma única decodificação recupera apenas a camada anterior, não o espaço final.

  1. Comece preferencialmente com o texto original.
  2. Escolha componente ou URL completa conforme o contexto.
  3. Codifique exatamente uma vez na fronteira onde o valor entra na URL.
  4. Decodifique exatamente uma vez ao ler esse valor.

Também evite montar consultas por concatenação quando uma API oferece URL e URLSearchParams, pois essas classes reduzem erros com separadores e parâmetros repetidos.

Perguntas Frequentes

Como codificar uma URL com espaços e acentos?
Cole o endereço, escolha “URL completa” e use o resultado gerado. Espaços viram %20, enquanto letras acentuadas são primeiro representadas em UTF-8 e depois escritas como sequências percentuais. Os separadores estruturais do endereço, como dois-pontos, barras, interrogação e & comercial, permanecem reconhecíveis.
Qual a diferença entre encodeURI e encodeURIComponent?
encodeURI é indicado para um endereço completo e preserva caracteres que organizam a URL, como :, /, ?, # e alguns separadores. encodeURIComponent é indicado para um valor inserido dentro da URL e codifica também &, =, ? e #, impedindo que esses símbolos sejam confundidos com a estrutura do endereço.
Por que o espaço vira %20 na URL?
O espaço não faz parte do conjunto de caracteres não reservados usado diretamente em uma URL. No percent-encoding, o byte hexadecimal 20 do espaço ASCII é escrito como %20. Formulários tradicionais também podem representar espaço com +, mas esse comportamento pertence à codificação de formulário e não ao decodeURIComponent comum.
Por que minha URL codificada aparece com %25?
O sinal de porcentagem tem o byte hexadecimal 25. Se você codificar novamente um texto que já contém %20, o % será convertido em %25 e o resultado incluirá %2520. Isso é dupla codificação. Decodifique uma camada ou use sempre o valor original antes de aplicar a codificação necessária.
O que significa URI malformed ao decodificar?
Esse erro aparece quando uma sequência percentual está incompleta, contém dígitos que não são hexadecimais ou produz bytes UTF-8 inválidos. Exemplos problemáticos incluem %, %2 e %ZZ. A ferramenta captura esse erro e pede que cada % seja seguido por exatamente dois dígitos de 0–9 ou A–F.

Ferramentas Relacionadas

Receba nossas novas ferramentas

Cadastre-se e seja o primeiro a saber quando lançarmos novas calculadoras e ferramentas.