1001Ferramentas
📤 Utilitários

Base85 / ASCII85 Encoder

Codifica texto em ASCII85 (Adobe/btoa) usando 85 caracteres imprimíveis. Mais denso que Base64: cada 4 bytes vira 5 caracteres ASCII.

Ascii85: quando cada caractere conta

Ascii85 codifica quatro bytes em cinco caracteres, contra os quatro para três do base64. Na prática isso significa crescimento de 25 por cento em vez de 33 — parece pouco, mas em arquivo PostScript ou em stream de PDF, onde dados binários vivem embutidos em texto, a diferença aparece no tamanho final. O preço é um alfabeto maior, que inclui caracteres de pontuação que atrapalham em URL.

Digite o texto e receba a codificação na variante Adobe, delimitada por marcadores de abertura e fechamento. A conta trata cada grupo de quatro bytes como um número de 32 bits e o escreve na base 85, começando no caractere de exclamação. Há um atalho: um grupo inteiro de zeros vira a letra z sozinha, o que economiza quatro caracteres em dados com muito espaço vazio.

O último grupo, quando não tem quatro bytes completos, é preenchido com zeros e depois truncado — sai com um caractere a mais que o número de bytes reais, o que permite ao decodificador saber quantos bytes recuperar. Confirme com um exemplo conhecido: o texto "Man " codifica para 9jqo^, e "sure." para F*2M7/c. Fora do PDF e do PostScript, Ascii85 aparece pouco: base64 venceu por ser seguro em mais contextos.

Perguntas frequentes

Para que servem os delimitadores no começo e no fim?
Eles marcam onde o bloco codificado começa e termina, convenção que a Adobe adotou para embutir dados em PostScript. Nem toda variante os usa — a versão do btoa do Git, por exemplo, tem alfabeto diferente e não os inclui. Se o destino reclamar, retire-os.
Posso usar Ascii85 em URL?
Não sem escapar. O alfabeto inclui caracteres como barra, sinal de mais, interrogação e o próprio e comercial, todos com significado especial em URL. Para esse caso, base64url ou base58 são escolhas melhores.
Por que 85 e não outro número?
Porque 85 é o menor inteiro cuja quinta potência passa de 2 elevado a 32. Como quatro bytes formam um número até 2 elevado a 32 menos um, é preciso que cinco dígitos da base escolhida cubram essa faixa — 84 elevado a 5 não cobre, 85 cobre.

Ferramentas Relacionadas