Codificador btoa Ascii85
Codifique texto no dialeto btoa original do Ascii85, com as linhas xbtoa Begin e End, o z para quatro bytes zero e o y para quatro espaços: Hello, world! fica 87cURD_*#TDfTZ)+TMKB entre as marcas. Na decodificação, as somas clássicas são conferidas. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- Hello, world!
- Modo de cálculo
- Encode
- Variante
- btoa
- Bytes
- 13
O utilitário original btoa codificava arquivos binários como Ascii85 imprimível muito antes de a Adobe popularizar um alfabeto relacionado em PDF e PostScript. Quem busca um codificador btoa Ascii85 costuma precisar do enquadramento clássico xbtoa Begin e xbtoa End, do atalho de um caractere z para quatro bytes zero e da tag y de compressão de espaços para quatro espaços ASCII—recursos que ferramentas no estilo Adobe omitem ou implementam de outro modo. A codificação sempre emite grupos completos de cinco caracteres com preenchimento de zeros no bloco final incompleto, registra o comprimento real em bytes na linha End e quebra linhas perto de setenta e oito caracteres para que colagens da era do e-mail ainda façam round-trip. A decodificação aceita arquivos enquadrados e verifica as checksums clássicas do arquivo, e ainda permite corpos só de alfabeto sem moldura para checagens rápidas.
Codifique texto UTF-8 no btoa Ascii85 original com tags x
O motor interpreta a string como texto Unicode, serializa-a em bytes UTF-8 e agrupa esses bytes de quatro em quatro num valor de trinta e dois bits em big-endian. Cada grupo completo vira cinco caracteres do alfabeto clássico que vai do ponto de exclamação até o u minúsculo. Quando um grupo é todo zeros, emite-se um único z em vez de cinco pontos de exclamação.
Quando um grupo são quatro bytes de espaço ASCII, emite-se um único y—a compressão de espaços que a versão 4.2 da ferramenta Unix introduziu e que muitos decodificadores só Adobe rejeitam. Grupos finais incompletos são preenchidos com zeros para a aritmética, de modo que o codificador sempre escreve grupos completos de cinco caracteres; o comprimento real em bytes é escrito na linha xbtoa End para o decodificador descartar exatamente os bytes de preenchimento.
A saída é enquadrada com as tags x distintivas: uma primeira linha xbtoa Begin, o corpo codificado quebrado perto de setenta e oito caracteres por linha e uma linha final xbtoa End N com o comprimento em decimal e hexadecimal mais as três checksums clássicas E, S e R. Strings vazias são válidas e produzem um arquivo enquadrado com N igual a zero. Texto multilíngue e emoji fazem round-trip porque o caminho é UTF-8 completo.
A resposta inclui result com o arquivo enquadrado, mode encode, variant btoa, bytes igual ao comprimento UTF-8 e framed true. Entradas idênticas sempre produzem saídas idênticas porque o algoritmo é aritmética pura, sem rede, sal ou relógio.
Decodifique btoa Ascii85 e rejeite entrada malformada ou inválida
Defina mode como decode e coloque uma string btoa Ascii85 em text. Quando a colagem inclui as linhas xbtoa Begin e xbtoa End, o motor remove esse enquadramento, analisa N e os campos de checksum E, S e R, e decodifica apenas o corpo entre as tags. Espaços em branco e quebras de linha no corpo são ignorados para que arquivos de e-mail multilinha ainda funcionem.
O alfabeto é estrito: só se aceitam caracteres do ponto de exclamação até o u minúsculo, mais z isolado para quatro zeros e y para quatro espaços. Grupos finais incompletos com menos de cinco caracteres do alfabeto quando não são z ou y são rejeitados. Begin sem End, End sem Begin, ou um N decimal e hexadecimal discordantes também são tratados como malformados.
Corpos só de alfabeto sem moldura são aceitos por conveniência, mas sem N o decodificador mantém cada byte decodificado, incluindo quaisquer preenchimentos de zero que o codificador teria registrado na linha End. Após a validação, os bytes recuperados são interpretados como UTF-8 com decodificador fatal para que cargas que não são texto não virem caracteres de substituição. Decodificação bem-sucedida devolve result como a string recuperada, mode decode, variant btoa, bytes como o comprimento do texto em claro e framed true ou false.
Como ele difere de outras ferramentas Ascii85
Use o codificador btoa Ascii85 gratuito no navegador para arqueologia de arquivos da era Usenet, migração de anexos de e-mail antigos, demos em sala de aula da história binário-para-texto e conversões pontuais sem instalar um binário Unix antigo. Outro fluxo fixa goldens de encode e decode para a integração contínua falhar se as regras de z, y, enquadramento ou checksum mudarem. Prefira esta página quando a intenção de busca for explicitamente btoa Ascii85, xbtoa Begin ou btoa original com compressão de espaços.
Prefira a ferramenta separada Adobe Ascii85 Base85 quando a carga usar delimitadores menor-que-til e til-maior-que ou grupos finais parciais no estilo PDF sem y. Prefira uma ferramenta Base64 padrão quando a pessoa se referir à função btoa de JavaScript no navegador, algoritmo totalmente diferente que só compartilha um nome histórico.
Casos de uso
Goldens de CI para o dialeto btoa
Fixe exemplos de codificação e decodificação para que testes de integração contínua falhem se o enquadramento, as checksums ou as regras de compressão y/z mudarem de surpresa.
Perguntas frequentes
Como codifico texto no btoa Ascii85 original?
O campo result é um arquivo enquadrado que começa com xbtoa Begin e termina com xbtoa End mais comprimento e checksums E/S/R.
Como decodifico um arquivo btoa Ascii85?
Defina mode como decode e coloque a string btoa enquadrada ou sem moldura em text. Com enquadramento, N e as checksums E/S/R são verificados antes de result devolver o texto UTF-8 recuperado.
O que são as tags z e y?
z comprime quatro bytes zero num caractere. y comprime quatro bytes de espaço ASCII (0x20) num caractere. Ambas fazem parte do dialeto btoa original que esta ferramenta implementa.
É o mesmo que o btoa de JavaScript ou Adobe Ascii85?
Não. O btoa do navegador é Base64. Adobe Ascii85 usa delimitadores opcionais <~ ~>, grupos finais parciais e em geral sem tag y de espaços. Esta ferramenta é o dialeto Unix btoa Ascii85 com tags x xbtoa.
O codificador btoa Ascii85 é gratuito?
A ferramenta do navegador roda grátis no seu dispositivo.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/enc/ascii85-btoa \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, world!"}'const res = await fetch("https://api.kit.forhosting.com/enc/ascii85-btoa", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, world!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/ascii85-btoa",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, world!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/ascii85-btoa", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, world!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, world!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/ascii85-btoa", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "Hello, world!"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.ascii85_btoa",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Esta capacidade trata apenas desse dialeto histórico: escolha o modo encode ou decode, envie um campo de texto e receba um arquivo enquadrado ou a string UTF-8 recuperada, ou um erro invalid_input claro quando o alfabeto, o enquadramento, o comprimento ou as checksums E/S/R não validarem.
Codifique texto UTF-8 no btoa Ascii85 original com tags x
Envie um corpo JSON com o campo de string obrigatório text igual à mensagem em claro que deseja representar no dialeto btoa original, e deixe mode no padrão encode ou defina mode como encode de forma explícita. Aliases opcionais input, value e s são aceitos para o mesmo campo.
Decodifique btoa Ascii85 e rejeite entrada malformada ou inválida
Qualquer outro caractere—incluindo letras após u, pontuação de URL de outras codificações ou ruído binário—causa falha imediata invalid_input com uma mensagem que nomeia a condição btoa Ascii85 inválida. Após decodificar grupos completos, o motor trunca para N bytes quando há enquadramento e recalcula as checksums clássicas Ceor, Csum e Crot sobre os grupos binários incluindo slots de preenchimento; divergência em E, S ou R falha com invalid_input em vez de devolver dados corrompidos em silêncio. Falhas de validação não são cobradas na API pré-paga.
Uso da API, preços, fluxos e diferenças em relação a Adobe e btoa JS
Use a API pré-paga do KIT quando um backend, função serverless ou SDK precisar do mesmo passo de codificação ou decodificação com saldo a US$ 0,002 por item bem-sucedido; validação falha nunca consome saldo após a rejeição do motor. Autores de SDK podem mapear o campo result para um botão de copiar, enquanto variant btoa e rótulos framed mantêm exemplos OpenAPI autoexplicativos para quem só conhece o dialeto das tags x.
Casos de integração
Arquivos btoa legados de Usenet e e-mail
Decodifique ou recodifique arquivos clássicos xbtoa Begin/End que usam corridas de zeros z e compressão de espaços y ao migrar anexos antigos ou verificar fixtures históricos.
Ensinar a história de binário para texto
Mostre aos alunos como o btoa original difere do Adobe Ascii85 e do btoa Base64 de JavaScript com o mesmo campo mode e erros invalid_input claros.