Codificador / decodificador de URL

Codifique ou decodifique URLs e textos usando percent encoding.

O formulário interativo fica disponível quando o JavaScript está ativo.

Como usar

A codificação por porcentagem substitui os caracteres que têm significado dentro de uma URL, como espaços, &, ?, # e letras acentuadas, por um % seguido dos valores dos seus bytes, para que o texto continue intacto ao ser colado, registrado em logs e interpretado. Cole o texto e escolha “Codificar” ou “Decodificar”; o resultado aparece logo abaixo, com um botão “Copiar”.

“Codificar” trata tudo o que você cola como um único valor, do jeito que um único parâmetro de consulta ou um segmento de caminho precisa ser codificado. Só letras, dígitos e - _ . ! ~ * ' ( ) ficam como estão; todo o resto é codificado, inclusive : / ? # & e =. É exatamente do que um valor precisa, mas não é assim que se codifica um endereço inteiro: https://example.com/a b vira https%3A%2F%2Fexample.com%2Fa%20b, que deixa de funcionar como link. Codifique as partes que precisam e mantenha os separadores.

Os caracteres fora do ASCII simples são primeiro convertidos para UTF-8 e depois codificados byte a byte, então é vira %C3%A9 e um emoji como 😀 vira quatro códigos % (%F0%9F%98%80).

“Decodificar” transforma os códigos % de volta em texto. Um + continua sendo +, porque o sinal de mais só significa espaço em dados no formato form-urlencoded; e um % que não é seguido de dois dígitos hexadecimais válidos, como em 100%, não pode ser decodificado e é indicado como inválido. Tudo é executado no seu navegador.

Exemplo

Espaços viram %20 e caracteres reservados da URL são codificados com porcentagens. Decodificar recupera o texto original.

  • hello worldhello%20world
  • a&b=c como um valora%26b%3Dc
  • cafécaf%C3%A9
  • https://example.com/?q=1https%3A%2F%2Fexample.com%2F%3Fq%3D1: serve como valor dentro de outra URL, mas não serve como link por si só.
  • a+b%20c → “Decodificar”a+b c: o %20 vira espaço, o + permanece.

Perguntas frequentes

Por que às vezes aparece + em vez de %20?

O sinal de mais significa espaço apenas no formato form-urlencoded que os envios de formulários HTML usam. No resto de uma URL, um mais é um mais literal, e é por isso que esta ferramenta codifica o espaço como %20 e deixa o + inalterado ao decodificar.

Por que uma letra acentuada vira seis caracteres?

Ela é convertida para UTF-8 primeiro e depois codificada byte a byte. A letra é ocupa dois bytes, então vira %C3%A9.

Por que a decodificação falha?

Geralmente porque o texto contém um % que não faz parte de um caractere codificado, como em 100%, ou uma sequência que não é UTF-8 válido. Codifique antes o % solto como %25.

Devo codificar uma URL inteira antes de compartilhá-la?

Não. Uma URL que já funciona deve ser compartilhada como está; codificá-la de novo transforma os separadores em códigos e a quebra. Só os valores colocados dentro de uma URL precisam ser codificados.

Ferramentas relacionadas