Enviar um arquivo
  1. base64hub
  2. Web e tokens
  3. URL encode

URL encode: codificador de URL (percent-encoding)

Cole um texto ou uma URL e receba o resultado com percent-encoding. Escolha Componente para um valor de query ou segmento de caminho, URL completa para corrigir um endereço inteiro ou Dados de formulário para corpos application/x-www-form-urlencoded.

Grátis sem cadastro, sem limites Local nada é enviado 4 modos componente, URL completa, formulário, todos os caracteres Atualizado 27 de out. de 2026
Entrada 0Saída 0

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como codificar uma string para URL

  1. Digite ou cole o texto em Texto ou URL. A saída é atualizada enquanto você digita.
  2. Escolha o modo em Codificar:
    • Componente (encodeURIComponent) para um único valor de query, campo de formulário ou segmento de caminho.
    • URL completa (encodeURI) para uma URL inteira que tem espaços ou caracteres não ASCII.
    • Dados de formulário (espaço como +) para corpos application/x-www-form-urlencoded e query strings montadas do jeito que os formulários HTML fazem.
    • Todos os caracteres para aplicar percent-encoding a todos os bytes, letras incluídas, para testar decodificadores.
  3. Deixe o Charset em UTF-8, a menos que o sistema que vai receber espere uma codificação legada.
  4. Marque Cada linha separadamente para codificar uma lista de valores de uma vez e depois clique em Copiar saída. Inverter envia o resultado para o decodificador, para conferir a ida e volta.

Uma URL completa na entrada também é dividida em esquema, host, caminho, cada parâmetro de query e o fragmento, numa tabela abaixo dos painéis.

encodeURIComponent vs encodeURI vs form encoding

A mesma entrada, a b&c=d/é?#+, nos três estilos comuns:

ModoSaídaUse para
Componente (encodeURIComponent)a%20b%26c%3Dd%2F%C3%A9%3F%23%2Bum único valor dentro de uma URL
URL completa (encodeURI)a%20b&c=d/%C3%A9?#+uma URL inteira que já está estruturada corretamente
Dados de formulário (URLSearchParams)a+b%26c%3Dd%2F%C3%A9%3F%23%2Benvio de formulários HTML, muitas bibliotecas de query string

Componente deixa sem escape só A–Z a–z 0–9 - _ . ! ~ * ' ( ). URL completa também mantém ; / ? : @ & = + $ , #, os caracteres que dão estrutura a uma URL, então não consegue proteger um valor que os contenha. Dados de formulário mantém só letras, dígitos e - _ . *, e escreve espaços como +.

O bug clássico é montar uma URL com a codificação URL completa: ?q=C++ & Go mantém o + e o &, e o servidor recebe q=C mais um parâmetro perdido. Codifique o valor com Componente: ?q=C%2B%2B%20%26%20Go.

Espaços, sinais de mais e outros encrenqueiros

CaractereCodificadoPor que importa
espaço%20 ou ++ só significa espaço em query strings e corpos de formulário
+%2Bsem codificar, muitos servidores o transformam em espaço: +49 30 1234567 vira 49 30 1234567
&%26inicia um novo parâmetro de query
=%3Dsepara nome e valor; o Base64 padrão termina com ele
/%2Fdivide segmentos de caminho; alguns servidores rejeitam %2F em caminhos
#%23inicia o fragmento, que nunca é enviado ao servidor
%%25precisa ser codificado também, senão o decodificador lê um escape quebrado
€%E2%82%ACtrês bytes UTF-8, três escapes

Base64 em uma URL é um caso comum do problema de +, / e =. Aplique percent-encoding como componente ou mude para Base64URL, que evita esses caracteres.

Charsets que não são UTF-8

O percent-encoding trabalha com bytes, então o charset decide o resultado. é é %C3%A9 em UTF-8 e %E9 em Windows-1252 ou ISO-8859-1. Navegadores e APIs modernos usam UTF-8, mas aplicações PHP antigas, alguns gateways de pagamento e sistemas de intranet legados ainda esperam Latin-1 ou Windows-1252, e sites japoneses às vezes Shift_JIS. Escolha o charset correspondente em Charset. Um caractere que não existe no charset escolhido não pode ser representado, então confira a saída.

Codificar URL no código

encodeURIComponent("a b&c")              // "a%20b%26c"
new URLSearchParams({ q: "C++ & Go" }).toString()   // "q=C%2B%2B+%26+Go"
from urllib.parse import quote, quote_plus, urlencode
quote("/files/a b.txt")            # '/files/a%20b.txt'  (keeps / by default)
quote("/files/a b.txt", safe="")   # '%2Ffiles%2Fa%20b.txt'
quote_plus("a b&c")                # 'a+b%26c'
urlencode({"q": "C++ & Go"})       # 'q=C%2B%2B+%26+Go'

O quote do Python mantém / a menos que você passe safe="", uma surpresa frequente ao codificar um valor. Em outras linguagens: no PHP, rawurlencode gera %20 e urlencode gera +; o URLEncoder.encode do Java é form encoding com +; o Go tem url.PathEscape (%20) e url.QueryEscape (+). O encodeURIComponent não mexe em ! ' ( ) *; para uma saída estrita segundo a RFC 3986, substitua-os depois:

const strict = s => encodeURIComponent(s).replace(/[!'()*]/g,
  c => "%" + c.charCodeAt(0).toString(16).toUpperCase());

Mais sobre o lado do JavaScript na página de Base64 em JavaScript. Para desfazer qualquer uma dessas codificações, use o decodificador de URL.

Perguntas frequentes

O que é codificação de URL?

A codificação de URL, ou percent-encoding, substitui os caracteres que não são permitidos ou que têm significado especial em uma URL por % e dois dígitos hex de cada byte. Um espaço vira %20, & vira %26 e é em UTF-8 vira %C3%A9.

Como codificar um espaço em uma URL: %20 ou +?

%20 funciona em qualquer lugar. + só significa espaço em query strings e corpos de formulário que seguem a convenção de form encoding; em um caminho, é um sinal de mais literal. Na dúvida, use %20.

Devo codificar a URL inteira?

Não, codifique cada valor antes de inseri-lo. Codificar uma URL inteira com Componente também escapa :, /, ? e &, o que a quebra. O modo URL completa mantém esses caracteres estruturais e só corrige espaços e texto não ASCII.

Por que minha string codificada tem %25?

%25 é um sinal de porcentagem codificado, o que significa que a entrada já estava codificada e foi codificada uma segunda vez: a%20b vira a%2520b. Codifique o texto bruto exatamente uma vez.

Hex em maiúsculas ou minúsculas no percent-encoding?

A RFC 3986 trata %2F e %2f como iguais e recomenda maiúsculas. Marque Hex em minúsculas só para bater com um sistema que gera minúsculas, por exemplo ao comparar assinaturas.