URL Encode e Decode
Codifique e decodifique URLs e query strings com percent-encoding e divida uma URL em partes. Tudo roda localmente — nada é enviado para servidor nenhum.
- Entrada
- Text · URL
- Saída
- Encoded · decoded · parsed parameters
Para um valor ou segmento de caminho: & = ? / # são codificados.
Texto
40 caracteres
Codificado
76 caracteres
Caf%C3%A9%20%26%20cr%C3%A8me%3F%2050%25%20off%20%2F%20today%20only%20%23deal
Codificação e decodificação de URL, e um analisador para a URL inteira
Este codificador e decodificador de URL converte texto para percent-encoding e de volta enquanto você digita, nas três variantes que a web realmente usa. O decodificador lida com a entrada quebrada que enche os logs reais — um % solto ou uma sequência UTF-8 cortada — e diz exatamente onde ela está. Um analisador de URL divide qualquer endereço em partes e deixa você editar a query string como uma tabela. Tudo roda localmente no seu navegador.
Como codificar ou decodificar uma URL
- Escolha Codificar, Decodificar ou Analisar URL.
- Ao codificar, escolha o método: Componente para um único valor de consulta ou segmento de caminho, URL completa para arrumar um endereço sem quebrá-lo, ou Formulário para reproduzir o que um formulário HTML envia.
- Ao decodificar, decida se
+significa espaço. Significa em query strings e corpos de formulário; não significa em caminhos. - Copie o resultado ou troque-o de volta para a entrada para conferir a ida e volta. Em Analisar URL, edite, adicione ou remova parâmetros de consulta e a URL é reconstruída para você.
O que o percent-encoding faz
Uma URL só pode conter um conjunto limitado de caracteres ASCII, e vários deles têm uma função: / separa segmentos do caminho, ? inicia a consulta, & e = separam parâmetros e # inicia o fragmento. Qualquer outro caractere, ou um reservado usado como dado, é escrito como % seguido de dois dígitos hexadecimais para cada um dos seus bytes UTF-8. Um espaço vira %20, & vira %26, e é, dois bytes em UTF-8, vira %C3%A9.
Errar nisso é um bug clássico: uma busca por "arroz & feijão" que chega só como "arroz ", porque o & não codificado iniciou um novo parâmetro.
encodeURIComponent, encodeURI ou codificação de formulário?
- Componente (encodeURIComponent)
- Codifica tudo exceto letras, dígitos e - _ . ! ~ * ' ( ). Use para uma parte da URL: um valor de consulta, um segmento de caminho, uma URL de redirecionamento passada como parâmetro. É a escolha certa nove em cada dez vezes.
- URL completa (encodeURI)
- Deixa em paz os caracteres que dão estrutura à URL (: / ? # & = e assim por diante) e codifica o resto, como espaços e letras não ASCII. Use em um endereço completo que você quer tornar válido, nunca em um valor isolado — ela não codifica & nem = dentro dele.
- Formulário (application/x-www-form-urlencoded)
- O que os navegadores enviam quando um formulário é submetido e o que o URLSearchParams produz: espaços viram +, e só letras, dígitos e * - . _ ficam como estão.
Decodificação, sinais + e sequências malformadas
O caractere + só significa espaço na query string e em corpos de formulário; em um caminho, é um sinal de mais literal. Por isso a decodificação tem uma opção + como espaço em vez de adivinhar. Se um valor decodificado mostrar sinais de mais onde deveria haver espaços, ative-a.
O decodeURIComponent do JavaScript lança "URI malformed" no primeiro % que não é seguido de dois dígitos hexadecimais — "100%" basta — ou em uma sequência de bytes que não é UTF-8 válido, como texto codificado em Latin-1 (%E9 para é). Este decodificador segue em frente: decodifica tudo o que é válido, deixa as partes quebradas como estavam e lista cada uma com linha e coluna, para você encontrá-la em uma linha de log longa.
Lendo e editando uma URL
O analisador mostra o protocolo, as credenciais, o host, a porta, o caminho, a consulta e o fragmento de qualquer URL absoluta, decodificados para ficarem legíveis. Os parâmetros de consulta aparecem em uma tabela de chave/valor: altere um valor, adicione ou apague um parâmetro e a URL completa é reconstruída com a codificação correta. É um jeito rápido de tirar parâmetros de rastreamento como utm_source ou de ver para onde um link de redirecionamento longo realmente aponta.
Para outras codificações, veja o codificador Base64 e o codificador de entidades HTML, que escapa texto para HTML e não para URLs.
Perguntas frequentes
- O que é URL encoding?
- URL encoding, ou percent-encoding, substitui caracteres que não são permitidos ou têm significado especial em uma URL por % seguido do valor hexadecimal de cada um dos seus bytes UTF-8. Um espaço vira %20 e & vira %26.
- Um espaço deve ser codificado como %20 ou +?
- Os dois estão certos em lugares diferentes. %20 funciona em todo lugar. + só significa espaço em query strings e envios de formulário, que é o que a codificação de formulário produz; em um caminho, + é um sinal de mais literal.
- Qual a diferença entre encodeURI e encodeURIComponent?
- O encodeURIComponent codifica caracteres reservados como / ? & = e #, então serve para um único valor dentro de uma URL. O encodeURI os deixa em paz, então serve para uma URL completa cuja estrutura precisa sobreviver.
- Por que recebo o erro "URI malformed"?
- A entrada contém um % que não é seguido de dois dígitos hexadecimais, ou bytes codificados que não são UTF-8 válido. Esta ferramenta decodifica o resto mesmo assim e mostra onde está cada problema.
- Como decodificar parâmetros de uma URL?
- Cole a URL em Analisar URL para ver cada parâmetro de consulta decodificado em uma tabela, ou cole só a query string em Decodificar com + como espaço ativado.
- Quais caracteres não precisam ser codificados em uma URL?
- Letras de A a Z e de a a z, dígitos e - . _ ~ são sempre seguros. Todo o resto deve ser codificado quando é dado e não parte da estrutura da URL.
- Minha URL é enviada para algum lugar?
- Não. A codificação, a decodificação e a análise rodam no seu navegador, então URLs com tokens ou dados pessoais nunca saem do seu dispositivo.