Pular para o conteúdo
Case Converter Online
pt

Codificar e decodificar URL

Faça a codificação percentual de um texto para ele ficar seguro dentro de um link, ou decodifique uma URL codificada de volta em texto comum. Escolha entre um valor, uma URL inteira ou dados de formulário.

Funciona nos dois sentidos. Sequências % quebradas ficam como estão na decodificação.

O que é a codificação de URL

Um endereço da web só pode ter um pequeno conjunto de caracteres: letras, dígitos e alguns símbolos como -, ., _ e ~. Outros caracteres têm funções especiais. O ? inicia a query string, o & separa os parâmetros, o = liga um nome a um valor e o # inicia um fragmento. Espaços e letras fora do alfabeto inglês, como á, ã e ç, não são permitidos.

A codificação de URL, também chamada de codificação percentual (URL encode ou percent encoding), resolve isso. Cada caractere inseguro é transformado em bytes UTF-8, e cada byte é escrito como % seguido de dois dígitos hex. Um espaço vira %20, o & vira %26 e o é vira %C3%A9.

Como usar o codificador de URL

Codificar. Digite ou cole um texto em Texto comum. A versão codificada aparece em Codificado para URL. Clique em Copiar para pegá-la.

Decodificar. Cole o texto codificado em Codificado para URL. O texto legível aparece à esquerda.

Escolha o que você está codificando no menu abaixo das caixas:

  • Um valor ou parte de uma URL (encodeURIComponent) é a escolha certa na maioria das vezes. Ela codifica tudo, menos letras, dígitos e - _ . ~. Use para termos de busca, valores de parâmetros e trechos de caminho.
  • Uma URL inteira, mantendo : / ? & = (encodeURI) deixa a estrutura do endereço em paz e só codifica espaços, letras fora do alfabeto inglês e caracteres parecidos.
  • Dados de formulário, espaços como + (x-www-form-urlencoded) corresponde ao que o navegador envia quando você submete um formulário HTML. Os espaços viram +, e na decodificação o + volta a ser espaço.

Limpar esvazia as duas caixas.

Como funciona

O texto é primeiro transformado em bytes UTF-8. Cada byte que não é permitido é trocado por % e o valor dele em hexadecimal. A letra é ocupa dois bytes em UTF-8, então vira dois escapes: %C3%A9. Um emoji ocupa quatro bytes, então vira quatro escapes. Em português, isso acontece com todas as letras acentuadas e com o ç: “ação” vira a%C3%A7%C3%A3o.

No modo de componente, esta ferramenta vai um passo além da função simples do navegador. Ela também codifica ! ' ( ) *, seguindo a RFC 3986. Esses caracteres são tecnicamente permitidos, mas já causaram problemas em alguns servidores e programas de e-mail.

A decodificação funciona ao contrário. Sequências de %XX são reunidas em bytes e lidas como UTF-8.

Exemplos

Entrada Componente URL inteira Formulário
hello world hello%20world hello%20world hello+world
Tom & Jerry Tom%20%26%20Jerry Tom%20&%20Jerry Tom+%26+Jerry
a+b=c a%2Bb%3Dc a+b=c a%2Bb%3Dc
50% off 50%25%20off 50%25%20off 50%25+off
café caf%C3%A9 caf%C3%A9 caf%C3%A9
it's (ok)*! it%27s%20%28ok%29%2A%21 it's%20(ok)*! it%27s+%28ok%29%2A%21
ação & café a%C3%A7%C3%A3o%20%26%20caf%C3%A9 a%C3%A7%C3%A3o%20&%20caf%C3%A9 a%C3%A7%C3%A3o+%26+caf%C3%A9
pão de queijo p%C3%A3o%20de%20queijo p%C3%A3o%20de%20queijo p%C3%A3o+de+queijo

Um endereço completo mostra melhor a diferença. https://example.com/a b?q=1&r=é no modo de URL inteira vira https://example.com/a%20b?q=1&r=%C3%A9, que continua funcionando como link. No modo de componente, o mesmo texto vira https%3A%2F%2Fexample.com%2Fa%20b%3Fq%3D1%26r%3D%C3%A9, o que só está certo quando o endereço inteiro é, ele mesmo, o valor de um parâmetro, como o destino de um redirecionamento.

Dicas e limites

  • Codifique os valores, não os links inteiros. Monte o link primeiro e depois codifique só as partes que você insere.
  • Cuidado com a codificação dupla. Se você vir %2520, o texto foi codificado duas vezes. Decodifique uma vez.
  • O + nem sempre é espaço. Ele só significa espaço em dados de formulário. Em um caminho, o + é um sinal de mais comum. Escolha o modo certo antes de decodificar.
  • Codificar não é esconder. Qualquer pessoa consegue ler um texto codificado. Não coloque senhas em links.
  • Maiúsculas e minúsculas não importam nos escapes. %c3%a9 e %C3%A9 significam a mesma coisa. Maiúsculas são o estilo mais comum.
  • Endereços com acento. Para páginas do seu próprio site, prefira slugs sem acento a URLs cheias de %C3. O gerador de slug cuida disso.

Outras formas de fazer isso

JavaScript. encodeURIComponent('Tom & Jerry') devolve Tom%20%26%20Jerry. Use decodeURIComponent para desfazer. Repare que ela gera um erro com uma sequência quebrada como %zz, enquanto esta ferramenta deixa a sequência no lugar.

Python. urllib.parse.quote('Tom & Jerry', safe='') devolve Tom%20%26%20Jerry, e urllib.parse.quote_plus devolve Tom+%26+Jerry.

Excel. =CODIFURL(A1) faz a codificação percentual do texto da célula A1 (=ENCODEURL(A1) no Excel em inglês; Excel 2013 ou mais recente no Windows).

Linha de comando. curl --data-urlencode "q=Tom & Jerry" codifica um valor de formulário enquanto o envia.

Ferramentas relacionadas

Montando links de campanha? O gerador de UTM codifica cada parâmetro para você. Para transformar um título em um caminho limpo, use o gerador de slug. Para dados binários dentro de uma URL, a codificação Base64 com a opção segura para URL costuma ser uma escolha melhor.

Codificador de URL: perguntas e respostas

O que significa %20 em uma URL?

%20 é um espaço codificado. O espaço não é permitido em um endereço da web, então ele é escrito como um sinal de porcentagem seguido do valor do byte em hexadecimal, que é 20. Em dados de formulário, o espaço muitas vezes aparece como + no lugar.

Devo codificar a URL inteira ou só uma parte?

Normalmente só a parte que você insere, como um termo de busca ou o valor de um parâmetro. Codificar uma URL inteira como componente também codifica os caracteres : e /, o que quebra o link. Use o modo de URL inteira só quando você tiver um endereço completo com espaços ou letras acentuadas.

Por que meu texto mostra %25 depois de codificar?

%25 é um sinal de porcentagem codificado. Se você codificar um texto que já está codificado, cada % vira %25. Por exemplo, a%20b codificado de novo vira a%2520b. Decodifique primeiro e depois codifique uma vez só.

Ele consegue decodificar uma URL quebrada ou codificada pela metade?

Consegue. Sequências válidas como %C3%A7 são decodificadas, e tudo o que não for uma sequência válida, como um % sozinho, fica como está. O texto inteiro nunca falha por causa de um caractere ruim.

Mais ferramentas de código e dados

Ver todas as ferramentas