# Codificar / Decodificar

URL: https://discuvr.org/encode-decode/?hl=pt
Last updated: 2026-11-07
MCP tool: `encode_decode_text`

Codifique ou decodifique Base64, Base64URL, URL (percentual), entidades HTML e hex ao digitar. UTF-8 completo, padding ausente sinalizado, nada salvo.

Um token num log, uma query string num redirecionamento, um e-mail cheio de &amp;: texto codificado aparece em todo lugar no trabalho. Cole aqui, escolha o formato e veja o resultado codificado ou decodificado enquanto digita.

## O que faz

- Base64, Base64URL (estilo JWT, sem padding), codificação percentual de URL, entidades HTML e hexadecimal.
- UTF-8 completo: acentos, hindi, chinês e emoji sobrevivem à ida e volta.
- O padding Base64 ausente é adicionado e informado, nunca corrigido em silêncio.
- Bytes que não são texto aparecem em hexadecimal em vez de caracteres embaralhados.
- Um clique para usar a saída como entrada e inverter a direção.

## Como funciona

1. Escolha o formato e se quer codificar ou decodificar.
2. Cole o texto: o resultado é atualizado enquanto você digita.
3. Copie a saída ou use-a como próxima entrada.

## Exemplo prático: ler um JWT

Um JSON Web Token são três partes Base64URL unidas por pontos: cabeçalho, payload e assinatura. Cole a parte do meio, escolha Base64URL e decodifique, e você verá as claims JSON, como o id do usuário e a expiração exp (um timestamp Unix que você pode ler no Conversor de timestamp Unix). Decodificar não é verificar: qualquer pessoa pode ler o payload de um JWT, e só a verificação da assinatura no servidor prova que ele não foi alterado.

## Os casos que complicam no trabalho

Base64 sem o padding, que alguns sistemas removem para economizar espaço, falha em decodificadores rígidos; esta ferramenta adiciona os sinais = que faltam e avisa. Para muitos servidores um + numa query string significa espaço, então um valor Base64 colado num link sem codificar chega corrompido; codifique-o como componente de URL ou use Base64URL. Texto codificado duas vezes aparece como %2520 ou &amp;amp; e precisa ser decodificado duas vezes.

## O que cada decodificador aceita

A decodificação Base64 ignora espaços e quebras de linha, então um valor quebrado em várias linhas, como num e-mail, é decodificado do jeito que foi colado. O Base64URL também aceita + e /, mas o Base64 comum rejeita - e _, então uma parte de um JWT precisa da opção Base64URL. A decodificação hex ignora espaços, dois-pontos, vírgulas, hífens e prefixos 0x, então 48:65:6c:6c:6f e 0x48 0x65 funcionam. A decodificação URL transforma + em espaço, então um sinal de mais literal precisa chegar como %2B. A codificação HTML escapa os cinco caracteres & < > " e '; a decodificação HTML entende todas as entidades nomeadas do HTML5, como &nbsp; e &hellip;, e as numéricas como &#8377; para o símbolo da rupia.

## Exemplos práticos: o que cada formato produz

A codificação de URL desta ferramenta codifica um único valor, como um parâmetro de consulta, então todo caractere reservado é escapado: https://example.com/a b?x=1&y=2 vira https%3A%2F%2Fexample.com%2Fa%20b%3Fx%3D1%26y%3D2. Codifique só o valor que você insere no link, nunca o link inteiro. Texto fora do ASCII é codificado como seus bytes UTF-8: café ₹ vira caf%C3%A9%20%E2%82%B9, e o hexadecimal mostra os mesmos bytes, é como c3 a9 e ₹ como e2 82 b9. O Base64 de user:pass é dXNlcjpwYXNz, o valor que um cabeçalho HTTP Basic Authorization carrega (RFC 7617); por isso qualquer pessoa que veja esse cabeçalho consegue ler a senha.

## Perguntas

**Por que meu texto decodificado mostra caracteres estranhos como Ã©?**

Os bytes eram UTF-8, mas foram lidos em algum lugar como Latin-1 ou Windows-1252 antes de serem codificados. A decodificação aqui mostra os bytes como são; a correção cabe ao sistema que os gerou.

**Posso decodificar um arquivo inteiro?**

Cole até 200.000 caracteres de texto. Em arquivos binários, como imagens, os bytes decodificados aparecem em hexadecimal em vez de virar um download.

**Base64 é criptografia?**

Não. O Base64 só muda a forma de escrever os bytes para que passem por sistemas que esperam texto simples. Qualquer pessoa pode decodificá-lo; nunca o use para esconder uma senha ou segredo.

**Qual a diferença entre Base64 e Base64URL?**

O Base64URL troca "+" e "/" por "-" e "_" e normalmente remove o padding "=", para que o resultado seja seguro em URLs e nomes de arquivo. Os JSON Web Tokens usam esse formato.

**Meu texto é armazenado?**

Não. Ele é convertido e devolvido na mesma requisição e nunca é gravado em banco de dados ou log.

**Por que a saída codificada é diferente do encodeURIComponent do JavaScript?**

Esta ferramenta também escapa ! ' ( ) e *, que o encodeURIComponent mantém como estão, então it's (50%) off! vira it%27s%20%2850%25%29%20off%21. As duas formas decodificam para o mesmo texto, e escapar esses caracteres é sempre seguro dentro de um valor de consulta. Um espaço vira %20, não +; a forma com + vem da codificação de formulários HTML, e o decodificador daqui lê as duas.

**Como codifico ou decodifico texto em Base64 pela linha de comando?**

No Linux ou Mac, echo -n 'Hello, World' | base64 dá SGVsbG8sIFdvcmxk, e echo 'SGVsbG8sIFdvcmxk' | base64 --decode volta ao texto. Sem o -n, o echo acrescenta uma quebra de linha que também é codificada, e o resultado vira SGVsbG8sIFdvcmxkCg==: o motivo mais comum para duas ferramentas discordarem. No PowerShell, [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('Hello, World')) codifica e [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('SGVsbG8sIFdvcmxk')) decodifica. Esta página codifica exatamente os caracteres que você cola, em UTF-8, sem acrescentar quebra de linha.

**Como decodifico uma imagem em Base64 ou um data URI?**

Cole só a parte depois da vírgula: em data:image/png;base64,iVBORw0KGgo... é iVBORw0KGgo..., porque o prefixo data:image/png;base64, não é Base64 e a string inteira é rejeitada. Escolha Base64 e Decode. Bytes que não são texto aparecem em hexadecimal em vez de desenhados como imagem, o que basta para saber que arquivo é: um PNG começa com 89 50 4e 47, um JPEG com ff d8 ff e um arquivo .docx, .xlsx ou outro baseado em ZIP inteiro com 50 4b 03 04. Para ver a imagem, cole o data URI completo na barra de endereços do navegador. A entrada vai até 200.000 caracteres, cerca de 150.000 bytes de arquivo.

**Por que o Base64 fica cerca de um terço maior que o original?**

O Base64 escreve cada 3 bytes como 4 caracteres e completa o último grupo com = até um múltiplo de 4 (RFC 4648), então a saída tem 4/3 dos bytes de entrada, arredondado para cima. Hello, World tem 12 bytes e vira os 16 caracteres SGVsbG8sIFdvcmxk. Contam-se bytes UTF-8, não letras: café tem 4 caracteres mas 5 bytes e vira Y2Fmw6k=, e ₹100 tem 6 bytes e vira 4oK5MTAw. Anexos de e-mail crescem um pouco mais porque o MIME quebra o Base64 em linhas de no máximo 76 caracteres (RFC 2045); esta página ignora essas quebras de linha ao decodificar. O Base64URL sem preenchimento economiza só os sinais =.

## Mais em Ferramentas para desenvolvedores

- [Conversor de timestamp Unix](https://discuvr.org/timestamp-converter/?hl=pt)
- [Criador de diagramas de sistemas](https://discuvr.org/system-diagram/?hl=pt)
- [Formatador JSON](https://discuvr.org/json-formatter/?hl=pt)
- [Formatador Python](https://discuvr.org/python-formatter/?hl=pt)

## Usado frequentemente com

- [Gerador de Senhas](https://discuvr.org/password-generator/?hl=pt)

---

Part of Discuvr (https://discuvr.org/): Discuvr is a collection of free, focused tools for day-to-day professional work - office and data utilities, legal and compliance helpers, privacy and security checks, and developer formatters. Every tool has its own page, and most can also be called from ChatGPT or Claude over MCP.
