Base64 e URL — Encode / Decode

Codifique e decodifique texto em Base64 ou em URL encoding (percent-encoding), com suporte completo a acentos e emojis (UTF-8).

Modo

O que é Base64?

Base64 é um esquema de codificação que representa dados binários usando apenas 64 caracteres ASCII "seguros" (A–Z, a–z, 0–9, + e /). Ele é usado quando dados binários precisam trafegar por canais que só aceitam texto — como anexos de e-mail, data URIs em CSS/HTML, tokens (o header e o payload de um JWT são Base64URL) e campos JSON. Codificar em Base64 não é criptografia: qualquer um consegue decodificar. Ele aumenta o tamanho do dado em cerca de 33%.

O que é URL encoding?

URL encoding (ou percent-encoding) substitui caracteres que têm significado especial ou que não são permitidos em uma URL por % seguido do código hexadecimal do byte. Por exemplo, um espaço vira %20 e ã vira %C3%A3. É essencial ao montar query strings e ao enviar dados em URLs. Esta ferramenta usa encodeURIComponent no modo URL, adequado para codificar valores individuais de parâmetros.

Suporte a UTF-8 (acentos e emojis)

As funções nativas btoa/atob do navegador operam apenas sobre caracteres de 8 bits (latin1) e quebram com acentos ou emojis. Esta ferramenta trata isso passando o texto por encodeURIComponent antes de codificar em Base64 — assim, "olá 👋" é codificado e decodificado corretamente, sem corromper os caracteres.

Perguntas frequentes (FAQ)

Base64 é uma forma de criptografia?

Não. Base64 é apenas uma codificação reversível, sem chave nem segredo. Qualquer pessoa pode decodificar. Nunca use Base64 para "esconder" senhas ou dados sensíveis.

Por que recebi um erro ao decodificar?

No modo Base64, o erro aparece quando o texto contém caracteres que não pertencem ao alfabeto Base64 ou tem comprimento inválido. No modo URL, o erro aparece quando há uma sequência % malformada (ex.: %ZZ ou % solto). Confira se você colou o conteúdo completo e no modo correto.

Qual a diferença entre encodeURIComponent e encodeURI?

encodeURIComponent codifica praticamente todos os caracteres especiais, sendo ideal para valores de parâmetros de query. encodeURI preserva caracteres estruturais de URL (como /, ? e &), servindo para codificar uma URL inteira. Esta ferramenta usa encodeURIComponent.