btoa-Ascii85-Kodierer
Kodieren Sie Text im ursprünglichen btoa-Dialekt von Ascii85, mit den Zeilen xbtoa Begin und End, z für vier Nullbytes und y für vier Leerzeichen: Aus Hello, world! wird 87cURD_*#TDfTZ)+TMKB zwischen den Marken. Beim Dekodieren werden die klassischen Prüfsummen kontrolliert. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Text
- Hello, world!
- Berechnungsmodus
- Encode
- Variante
- btoa
- Bytes
- 13
Das ursprüngliche btoa-Dienstprogramm kodierte Binärdateien als druckbares Ascii85, lange bevor Adobe ein verwandtes Alphabet in PDF und PostScript popularisierte. Wer einen btoa-Ascii85-Kodierer sucht, braucht meist den klassischen Rahmen xbtoa Begin und xbtoa End, die Ein-Zeichen-Kurzform z für vier Nullbytes und das y-Leerzeichen-Kompressionstag für vier ASCII-Leerzeichen—Funktionen, die Adobe-ähnliche Werkzeuge oft weglassen oder anders umsetzen. Die Kodierung erzeugt stets vollständige Fünf-Zeichen-Gruppen mit Null-Padding im unvollständigen Schlussblock, schreibt die echte Bytelänge in die End-Zeile und bricht Zeilen bei etwa achtundsiebzig Zeichen um, damit Mail-zeitige Einfügungen weiterhin rundlaufen. Die Dekodierung akzeptiert gerahmte Archive und prüft die klassischen Datei-Prüfsummen; ungerahmte Alphabet-Körper sind für schnelle Checks ebenfalls erlaubt.
UTF-8-Text in originalen btoa-Ascii85 mit x-Tags kodieren
Die Engine liest die Zeichenkette als Unicode-Text, serialisiert sie zu UTF-8-Bytes und gruppiert diese Bytes zu je vier in einen big-endian-32-Bit-Wert. Jede vollständige Gruppe wird zu fünf Zeichen des klassischen Alphabets vom Ausrufezeichen bis zum kleinen u. Ist eine Gruppe ganz null, wird ein einzelnes z statt fünf Ausrufezeichen ausgegeben.
Besteht eine Gruppe aus vier ASCII-Leerzeichen-Bytes, wird ein einzelnes y ausgegeben—die Leerzeichen-Kompression, die Version 4.2 des Unix-Werkzeugs einführte und die viele rein Adobe-Decoder ablehnen. Unvollständige Schlussgruppen werden für die Arithmetik mit Nullen aufgefüllt, sodass der Kodierer stets vollständige Fünf-Zeichen-Gruppen schreibt; die echte Bytelänge steht in der Zeile xbtoa End, damit der Decoder Pad-Bytes exakt verwerfen kann.
Die Ausgabe ist mit den markanten x-Tags gerahmt: eine erste Zeile xbtoa Begin, der kodierte Körper mit Zeilenumbruch nahe achtundsiebzig Zeichen und eine Schlusszeile xbtoa End N mit Länge in Dezimal und Hexadezimal plus den drei klassischen Prüfsummen E, S und R. Leere Zeichenketten sind gültig und erzeugen ein gerahmtes Archiv mit N gleich null. Mehrsprachiger Text und Emoji laufen rund, weil der Pfad volles UTF-8 ist.
Die Antwort enthält result mit dem gerahmten Archiv, mode encode, variant btoa, bytes gleich der UTF-8-Länge und framed true. Identische Eingaben erzeugen stets identische Ausgaben, weil der Algorithmus reine Arithmetik ohne Netz, Salz oder Uhr ist.
btoa-Ascii85 dekodieren und ungültige Eingaben ablehnen
Setzen Sie mode auf decode und legen Sie eine btoa-Ascii85-Zeichenkette in text. Enthält die Einfügung die Zeilen xbtoa Begin und xbtoa End, entfernt die Engine diesen Rahmen, parst N sowie die Prüfsummenfelder E, S und R und dekodiert nur den Körper zwischen den Tags. Leerraum und Zeilenumbrüche im Körper werden ignoriert, damit mehrzeilige Mail-Archive weiter funktionieren.
Das Alphabet ist streng: Nur Zeichen vom Ausrufezeichen bis zum kleinen u, plus alleinstehendes z für vier Nullen und y für vier Leerzeichen, sind erlaubt. Unvollständige Schlussgruppen mit weniger als fünf Alphabetzeichen, sofern nicht z oder y, werden abgelehnt. Begin ohne End, End ohne Begin oder ein dezimales und hexadezimales N, die nicht übereinstimmen, gelten ebenfalls als fehlerhaft.
Ungerahmte reine Alphabetkörper sind der Bequemlichkeit halber erlaubt, doch ohne N behält der Decoder jedes dekodierte Byte inklusive Null-Pads, die der Kodierer in der End-Zeile vermerkt hätte. Nach der Validierung werden wiederhergestellte Bytes mit einem fatalen Decoder als UTF-8 gelesen, damit Nicht-Text-Nutzlasten keine Ersatzzeichen werden. Erfolgreiches Dekodieren liefert result als wiederhergestellte Zeichenkette, mode decode, variant btoa, bytes als Klartextlänge und framed true oder false.
Was es von anderen Ascii85-Werkzeugen unterscheidet
Nutzen Sie den kostenlosen btoa-Ascii85-Kodierer im Browser für Archäologie von Usenet-zeitigen Archiven, Migration alter Mail-Anhänge, Unterrichtsdemos zur Geschichte von Binär-zu-Text und einmalige Umwandlungen ohne Installation eines alten Unix-Binärs. Ein anderer Ablauf pinnt Encode- und Decode-Goldens, damit die Continuous Integration scheitert, wenn z-, y-, Rahmen- oder Prüfsummenregeln abweichen. Bevorzugen Sie diese Seite, wenn die Suchabsicht ausdrücklich btoa Ascii85, xbtoa Begin oder originales btoa mit Leerzeichen-Kompression ist.
Bevorzugen Sie das separate Adobe-Ascii85-Base85-Werkzeug, wenn die Nutzlast Kleiner-als-Tilde- und Tilde-größer-als-Begrenzer oder PDF-artige partielle Schlussgruppen ohne y verwendet. Bevorzugen Sie ein Standard-Base64-Werkzeug, wenn die Browser-JavaScript-Funktion btoa gemeint ist—ein völlig anderer Algorithmus, der nur einen historischen Namen teilt.
Anwendungsfälle
CI-Goldens für den btoa-Dialekt
Pinnen Sie Encode- und Decode-Beispiele, damit Continuous-Integration-Tests scheitern, wenn Rahmen, Prüfsummen oder y/z-Kompressionsregeln unerwartet wechseln.
Häufige Fragen
Wie dekodiere ich ein btoa-Ascii85-Archiv?
Setzen Sie mode auf decode und legen Sie die gerahmte oder ungerahmte btoa-Zeichenkette in text. Mit Rahmen werden N und die E/S/R-Prüfsummen geprüft, bevor result den wiederhergestellten UTF-8-Text liefert.
Was sind die Tags z und y?
z komprimiert vier Nullbytes zu einem Zeichen. y komprimiert vier ASCII-Leerzeichen-Bytes (0x20) zu einem Zeichen. Beide gehören zum originalen btoa-Dialekt, den dieses Werkzeug umsetzt.
Ist das dasselbe wie JavaScript-btoa oder Adobe Ascii85?
Nein. Browser-btoa ist Base64. Adobe Ascii85 nutzt optionale <~ ~>-Begrenzer, partielle Schlussgruppen und typischerweise kein y-Leerzeichen-Tag. Dieses Werkzeug ist der Unix-btoa-Ascii85-Dialekt mit xbtoa-x-Tags.
Wozu dienen die Werte E, S und R in der End-Zeile?
Es sind die drei klassischen Prüfsummen des Formats. Beim Dekodieren werden sie über die Daten neu berechnet und verglichen; weicht eine ab, wird das Ergebnis mit einem klaren Hinweis abgelehnt, statt still beschädigten Text auszugeben.
Funktionieren Umlaute und Emojis?
Ja. Der Text wird vor dem Kodieren in UTF-8-Bytes umgewandelt, daher kommen mehrsprachige Texte und Emojis unverändert zurück. Beim Dekodieren werden die Bytes streng als UTF-8 gelesen, sodass keine Ersatzzeichen entstehen.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
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)Beispiel-Anfrage
{
"text": "Hello, world!"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.ascii85_btoa",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Diese Fähigkeit deckt nur diesen historischen Dialekt ab: Wählen Sie den Modus encode oder decode, senden Sie ein Textfeld und erhalten Sie ein gerahmtes Archiv oder die wiederhergestellte UTF-8-Zeichenkette—oder einen klaren invalid_input-Fehler, wenn Alphabet, Rahmen, Länge oder die Prüfsummen E/S/R nicht stimmen.
UTF-8-Text in originalen btoa-Ascii85 mit x-Tags kodieren
Senden Sie einen JSON-Körper mit dem Pflicht-Stringfeld text gleich der Klartextnachricht, die Sie im originalen btoa-Dialekt darstellen möchten, und lassen Sie mode beim Standard encode oder setzen Sie mode explizit auf encode. Optionale Aliase input, value und s werden für dasselbe Feld akzeptiert.
btoa-Ascii85 dekodieren und ungültige Eingaben ablehnen
Jedes andere Zeichen—einschließlich Buchstaben nach u, URL-Interpunktion aus anderen Kodierungen oder binäres Rauschen—führt sofort zu invalid_input mit einer Meldung, die die ungültige btoa-Ascii85-Bedingung benennt. Nach dem Dekodieren vollständiger Gruppen kürzt die Engine bei vorhandenem Rahmen auf N Bytes und berechnet die klassischen Prüfsummen Ceor, Csum und Crot über die Binärgruppen inklusive Pad-Slots neu; eine Abweichung bei E, S oder R scheitert mit invalid_input statt stillschweigend korrupter Daten. Validierungsfehler werden auf der vorausbezahlten API nicht berechnet.
API-Nutzung, Preise, Abläufe und Unterschiede zu Adobe und JS-btoa
Nutzen Sie die vorausbezahlte KIT-API, wenn ein Backend, eine Serverless-Funktion oder ein SDK denselben Kodier- oder Dekodierschritt unter Guthaben zu $0.002 pro erfolgreichem Element braucht; fehlgeschlagene Validierung wird nach Ablehnung durch die Engine nicht berechnet. SDK-Autoren können das result-Feld auf eine Kopierschaltfläche legen, während variant btoa und framed-Labels OpenAPI-Beispiele für Leser selbsterklärend halten, die nur den x-Tag-Dialekt kennen.
Integrationsbeispiele
Legacy-Usenet- und Mail-btoa-Archive
Dekodieren oder neu kodieren Sie klassische xbtoa-Begin/End-Archive mit z-Nulläufen und y-Leerzeichen-Kompression beim Migrieren alter Anhänge oder Prüfen historischer Fixtures.
Geschichte von Binär zu Text lehren
Zeigen Sie Studierenden, wie sich originales btoa von Adobe Ascii85 und JavaScript-Base64-btoa mit demselben mode-Feld und klaren invalid_input-Fehlern unterscheidet.
Technische Fragen
Wie kodiere ich Text in originales btoa-Ascii85?
Senden Sie JSON mit text gleich Ihrer UTF-8-Klartextzeichenkette und mode encode (oder lassen Sie mode weg). Das result-Feld ist ein gerahmtes Archiv ab xbtoa Begin bis xbtoa End plus Länge und E/S/R-Prüfsummen.
Ist der btoa-Ascii85-Kodierer kostenlos?
Das Browser-Werkzeug läuft kostenlos auf Ihrem Gerät. API-Aufrufe nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Element; Validierungsfehler werden nicht berechnet.