Ir para o conteúdo principal

URL Encode/Decode

Codifique e decodifique texto para URL.

Entrada de texto ou URL

Lin 1, Col 1
URL

Resultado

Seu resultado aparecerá aqui

Adicione URL acima e escolha Converter.

Adicione URL à esquerda e escolha Converter.

Aguardando entrada

Codifique ou decodifique texto em sequências %XX, como um componente de URL ou como uma URL completa, que preserva os separadores.

O que é o URL Encode/Decode?

O URL Encode/Decode é uma ferramenta online gratuita que codifica texto com porcentagem, ou decodifica sequências %XX de volta em texto, no seu navegador. O escopo “Componente” trata o texto como uma parte de uma URL, como o valor de um parâmetro, e o escopo “URL completa” trata o texto como um endereço inteiro e deixa os separadores como estão.

Ele segue as regras das funções JavaScript encodeURIComponent e encodeURI, com as funções de decodificação correspondentes, sempre em UTF-8, e recusa uma sequência % malformada, informando a posição, em vez de adivinhar.

O que ela aceita

  • A codificação com o escopo “Componente” funciona como a encodeURIComponent: todo caractere é codificado, exceto letras, dígitos e - _ . ! ~ * ' ( ).
  • Com o escopo “URL completa”, ela funciona como a encodeURI, então também deixa ; , / ? : @ & = + $ # como estão.
  • Os dois escopos escrevem texto não ASCII como bytes UTF-8 com dígitos hexadecimais maiúsculos (é vira %C3%A9), e um espaço vira %20, nunca +.
  • A decodificação com o escopo “Componente” decodifica toda sequência %XX, como a decodeURIComponent. Com o escopo “URL completa”, as sequências que representam ; , / ? : @ & = + $ # continuam codificadas, como na decodeURI.
  • O texto que não está codificado com % é deixado como está ao decodificar, e um + continua sendo +. Os bytes decodificados precisam formar texto UTF-8 válido.
  • Um texto com um substituto (surrogate) sem par, que é metade de um emoji, não pode ser codificado com %, então codificá-lo é recusado, com a linha e a coluna dele.

Bom saber

  • Um + nunca é transformado em espaço. Formulários HTML e muitas query strings escrevem o espaço como +, então, se o seu texto vem de um deles, troque os sinais + por espaços você mesmo antes de decodificar.
  • Codificar um texto que já está codificado codifica os sinais % de novo: %20 vira %2520. Decodifique primeiro se você não tiver certeza do que tem.
  • O escopo “Componente” serve para uma parte de uma URL, como o valor de um parâmetro ou um segmento do caminho, e “URL completa” serve para um endereço inteiro. Codificar um endereço inteiro com “Componente” codifica também os : e /, o que o quebra.
  • Um % que não é seguido por dois dígitos hexadecimais é recusado com a sua posição, e o mesmo vale para bytes codificados com % que não são texto UTF-8 válido, como o %E9 do Latin-1. Nada é corrigido.
  • A ferramenta trabalha só com texto: não confere se o resultado é uma URL válida, não a divide em partes e nunca busca nada na rede.

Como usar o URL Encode/Decode?

  1. Cole ou digite o seu texto, ou o seu texto codificado com %, na caixa de entrada. Nada é executado enquanto você digita.
  2. Em “Modo”, escolha “Codificar” ou “Decodificar”, e em “Escopo”, escolha “Componente” ou “URL completa”. Depois aperte “Converter”.
  3. Leia o resultado ao lado da entrada. Se uma sequência % estiver malformada ou os bytes não forem texto válido, a mensagem explica o motivo e informa a linha e a coluna.
  4. Aperte “Copiar” para colocar o resultado na área de transferência, ou “Baixar” para salvá-lo como converted.txt.

Exemplos

Codificar o valor de um parâmetro

Deixe “Modo” em “Codificar” e “Escopo” em “Componente”, cole este texto e aperte “Converter”. Todo caractere que poderia ser lido como separador é codificado: o espaço vira %20, & vira %26, / vira %2F, ? vira %3F e = vira %3D, e “ã” vira os seus dois bytes UTF-8, %C3%A3.

São Paulo & Rio/RJ?x=1
S%C3%A3o%20Paulo%20%26%20Rio%2FRJ%3Fx%3D1

Um sinal de porcentagem solto

Escolha “Decodificar” e aperte “Converter”. O % em “100% sure” não é seguido por dois dígitos hexadecimais, então o texto não pode ser decodificado e a mensagem informa a posição do sinal. Para escrever um sinal de porcentagem literal, use %25.

100% sure

Um sinal de porcentagem (%) deve ser seguido por dois dígitos hexadecimais, como %20. Este não é, então o texto não pode ser decodificado. Escreva um sinal de porcentagem literal como %25.

Linha 1, coluna 4

Codificar um endereço completo

Escolha “URL completa”. Os caracteres : / ? & e = continuam como estão, enquanto os espaços e o “é” são codificados, então o endereço mantém a sua estrutura.

https://example.com/path with space/café?q=a b&lang=pt-BR
https://example.com/path%20with%20space/caf%C3%A9?q=a%20b&lang=pt-BR

O sinal de mais continua sendo mais

Escolha “Decodificar”. O + é mantido como +, o que difere da decodificação de um formulário HTML ou de uma query string, em que + significa espaço. Só %20 vira espaço, e %2B vira +.

a+b%2Bc%20d
a+b+c d

Decodificar um endereço completo

Com “URL completa”, uma sequência que representa um separador (%2F, %3F, %26, %3D, %23 e os outros caracteres reservados) continua codificada, então a estrutura do endereço não muda. O espaço e o “é” são decodificados.

https://example.com/a%20b%2Fc?q=caf%C3%A9%26x
https://example.com/a b%2Fc?q=café%26x

Bytes que não são UTF-8

Escolha “Decodificar”. %E9 é “é” na antiga codificação Latin-1, mas em UTF-8 não é um caractere completo, então a ferramenta recusa e informa a posição desses bytes em vez de mostrar um caractere errado.

caf%E9

Estes bytes codificados com porcentagem não são UTF-8 válido, então não formam nenhum texto. O texto pode estar danificado ou usar outra codificação de caracteres.

Linha 1, coluna 4

Limites e privacidade

Limites de tamanho

  • Entrada: até 2.000.000 bytes de texto em UTF-8 (cerca de 2 MB). Letras acentuadas e emojis ocupam mais de um byte cada. Uma entrada maior é recusada.
  • Resultado: também até 2.000.000 bytes. Se o resultado completo fosse maior, a ferramenta mostra apenas uma prévia incompleta dos primeiros 100.000 bytes, e essa prévia não pode ser copiada nem baixada.
  • Tempo: uma execução que demora mais que o seu limite de tempo é interrompida. Tente uma entrada menor.

Meu texto é enviado para um servidor?

Não. O texto que você digita ou cola, ou abre de um arquivo local, é processado localmente no seu navegador, em um Web Worker dedicado. Ele nunca é enviado para o servidor (um arquivo que você abre é lido apenas no seu navegador) e não é gravado em armazenamento, cookies nem na barra de endereços.

“Copiar” coloca o resultado na área de transferência e “Baixar” o salva como arquivo, mas só quando você aperta o botão. O arquivo é criado no seu navegador, então nada é enviado.

Para ver os detalhes completos, consulte a Política de Privacidade

Ferramentas e páginas relacionadas

O seu texto continua na página quando você troca de ferramenta na mesma aba, então dá para testar o mesmo texto em outra. Recarregar ou fechar a aba o encerra.

Todas as ferramentas