Base64URL representa os mesmos bytes que Base64, mas muda dois caracteres para facilitar o uso em URLs. O Decodex aceita os dois formatos e exibe texto UTF-8. Você pode testar o exemplo da tabela diretamente no conversor.
O que muda no alfabeto
Base64 usa + e /; Base64URL usa - e _. Letras e números são iguais. O preenchimento = é uma regra separada: alguns protocolos o removem e outros o mantêm. Uma sequência só de letras e números não revela qual alfabeto foi usado. Nenhum dos formatos é criptografia.
Quando uma URL altera os dados
Em application/x-www-form-urlencoded, + pode ser interpretado como espaço. / também pode ser confundido com um separador de caminho. Use URLSearchParams para montar parâmetros. Se + já foi perdido, o decodificador não consegue reconstruí-lo com certeza. O emoji 😀 vira 8J+YgA== em Base64 e 8J-YgA== em Base64URL.
Converter e conferir
Primeiro codifique os bytes em Base64, troque + por - e / por _, e remova somente os = finais se o protocolo permitir. O Decodex gera Base64 padrão com preenchimento e aceita Base64URL ao decodificar. Ler um segmento JWT não verifica assinatura, validade ou permissões; esta ferramenta não valida tokens.
Testar este exemplo
| Formato | Texto | Base64 |
|---|---|---|
Base64 | 😀 | 8J+YgA== |
Base64URL | 😀 | 8J-YgA== |
Base64URL (JWT) | 😀 | 8J-YgA |
Perguntas frequentes
Base64URL sempre remove =?
Não. Siga as regras do sistema que recebe os dados. No Decodex, o exemplo sem preenchimento 8J-YgA resulta em 😀.
Referências
Mais guias de Base64
Preenchimento Base64: o significado de = e ==
Entenda o preenchimento Base64 com f, fo e foo. Confira sequências sem =, comprimentos inválidos e erros de preenchimento parcial.
Base64 em JavaScript com Unicode: corrigir erros de btoa()
Codifique acentos, coreano e emojis com TextEncoder e decodifique com atob e TextDecoder. Código UTF-8 e exemplos verificados.
