Git-Base85-Kodierer
„hello“ wird zur Git-Base85-Zeile EXk~0{ZvX%Q, deren führendes E sagt, dass die Zeile fünf Bytes enthält: der Dialekt, den Git für Binärpatches nutzt, nicht Adobe-Ascii85. Sie kodieren Text oder rohe Bytes und dekodieren Zeilen. 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
- Ergebnis
- EXk~0{ZvX%Q
- Berechnungsmodus
- Encode
- Ausgabeformat
- Text
- Variante
- git_base85
Git speichert binäre Dateiänderungen in Unified Diffs mit einem eigenen Base85-Dialekt, nicht Adobe Ascii85 und nicht schlichtes Base64. Jede Datenzeile beginnt mit einem Längenpräfix-Buchstaben—A bis Z für ein bis sechsundzwanzig dekodierte Bytes, a bis z für siebenundzwanzig bis zweiundfünfzig—gefolgt von fünf Alphabetzeichen für je vier Nutzdatenbytes. Entwickler, die GIT-binary-patch-Abschnitte prüfen, Apply-Fehler debuggen oder kompatible Werkzeuge bauen, brauchen einen Konverter, der genau dieses Alphabet und diese Zeilenform spricht.
Text oder Hex in Git-Base85-Zeilen kodieren
Für jeden Block schreibt sie ein Längenpräfix (A bedeutet ein Byte, B zwei, bis Z für sechsundzwanzig, dann a für siebenundzwanzig bis z für zweiundfünfzig) und expandiert jede Vierergruppe in fünf Zeichen aus Gits fünfundachtzig-Symbol-Alphabet: Ziffern, Groß- und Kleinbuchstaben sowie den Zeichensatz, der Anführungszeichen, Kommas, Punkte, Schrägstriche und Backslashes auslässt, damit Patches mail- und shell-freundlich bleiben. Eine kurze Schlussgruppe wird für die Arithmetik mit Nullen aufgefüllt und dann auf die richtige Anzahl Fünferblöcke gekürzt, sodass der Dekodierer die exakte Bytezahl allein aus dem Präfix gewinnt.
Setzen Sie format auf hex, wenn die Nutzlast rohe Binärdaten sind: text muss eine hexadezimale Zeichenkette gerader Länge sein (Leerzeichen und Unterstriche erlaubt), und diese Bytes werden ohne UTF-8-Schicht kodiert. Leere Eingabe ist gültig und liefert ein leeres Ergebnis mit null Bytes und null Zeilen. Der Pfad ist reine Arithmetik—kein Netz, kein Zufallssalz, keine Uhr—daher erzeugen identische Eingaben stets identische Base85-Körper für Continuous-Integration-Goldens.
Zeilen mit Längenpräfix dekodieren und ungültige Eingabe ablehnen
Setzen Sie mode auf decode und legen Sie eine oder mehrere Git-Base85-Zeilen in text. Leerzeilen werden ignoriert, damit Sie ein Fragment aus einem größeren Patch einfügen können. Nach dem Präfix muss der Rest genau das Fünffache der Anzahl benötigter Vierergruppen für die deklarierte Bytezahl sein—zu wenige oder zu viele Symbole sind ein Fehler, keine stille Kürzung.
Jedes kodierte Zeichen muss im Git-Alphabet liegen; ein aus Adobe Ascii85 entlehntes Symbol (zum Beispiel ein freies Kleiner-als oder ein z-Nullenlauf, den Git nicht nutzt) scheitert sofort, damit Sie nie versehentlich einen fremden Dialekt als Binärpatch-Körper anwenden. Erfolgreiches Dekodieren verkettet alle Zeilen der Reihe nach zu einem einzigen Bytepuffer. Bei format hex ist das Ergebnis eine kleingeschriebene Hex-Zeichenkette der gewonnenen Bytes—die praktische Wahl, wenn die Nutzlast zlib-komprimierte Literaldaten aus einem echten GIT binary patch und kein lesbarer Text ist.
Viele suchen einen Base85-Kodierer, nachdem sie Binärdaten in einem git diff gesehen haben, und landen bei Adobe-Ascii85-Werkzeugen mit anderem Alphabet, optionalen less-than-tilde-Hüllen und einem z-Kürzel für Nullenläufe. Gits Dialekt ist bewusst anders: fünfundachtzig feste Symbole ab der Ziffer null, verpflichtende Längenpräfixe pro Zeile, keine Adobe-Begrenzer und kein z-Kompressionstoken. Diese Seite bedient die git-spezifische Suchabsicht—git base85 kodierer, binärpatch base85, git base85 dekodieren—und konkurriert nicht mit einer allgemeinen Ascii85-Seite.
Ein anderer Ablauf fügt nur die Datenzeilen eines GIT binary patch ein (ohne literal-N-Kopf, falls die Größe bekannt ist) und gewinnt Bytes zur Prüfung. Halten Sie Nutzlasten bescheiden—dies ist ein Parse-Element der Stufe A, kein Packfile-Server—und pinnen Sie result-Zeichenketten in Goldens, weil der Algorithmus über Isolate und Sprachen mit derselben Tabelle vollständig deterministisch ist.
Anwendungsfälle
GIT-binary-patch-Körper prüfen
Dekodieren Sie Base85-Zeilen mit Längenpräfix aus einem git diff --binary, um die komprimierte Literal-Nutzlast per Hex-Dump zu sehen, ohne den ganzen Patch anzuwenden.
Häufige Fragen
Wie dekodiere ich Base85-Zeilen eines Git-Binärpatches?
Setzen Sie mode auf decode und legen Sie die Zeilen mit Längenpräfix in text. Nutzen Sie format hex bei binärer Nutzlast; format text (Standard) liefert UTF-8, wenn die Bytes gültiges Unicode sind.
Was unterscheidet Git Base85 von Adobe Ascii85?
Git nutzt ein anderes 85-Zeichen-Alphabet, verlangt ein Längenpräfix pro Zeile (A–Z, a–z), verwendet keine <~ ~>-Begrenzer und implementiert Adobes z-Nullen-Kürzel nicht.
Was bedeutet der erste Buchstabe jeder Git-Base85-Zeile?
Er gibt die Länge der Zeile in Bytes an: A steht für eins, B für zwei, bis Z für 26, danach a für 27 bis z für 52. Eine Zeile enthält nie mehr als 52 Bytes, und der Decoder ermittelt daraus die genaue Bytezahl.
Kann ich rohe Bytes statt Text kodieren?
Ja. Wählen Sie die Hex-Option und geben Sie eine Hexadezimalfolge mit gerader Länge ein; Leerzeichen und Unterstriche sind erlaubt. Die Bytes werden dann direkt kodiert, ohne den Umweg über UTF-8-Text.
Was passiert bei einer ungültigen Git-Base85-Zeile?
Der Decoder bricht mit einer klaren Meldung ab, wenn der Längenbuchstabe ungültig ist, wenn nach ihm zu wenige oder zu viele Zeichen folgen oder wenn ein Zeichen nicht zum Git-Alphabet gehört, etwa das z aus Adobe-Ascii85.
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/base85-git \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello"}'const res = await fetch("https://api.kit.forhosting.com/enc/base85-git", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hello"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base85-git",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hello"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base85-git", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hello"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hello"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base85-git", 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"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base85_git",
"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 kodiert UTF-8-Text oder hexadezimale Bytes in Git-Base85-Zeilen und dekodiert sie zurück, wobei unzulässige Symbole, falsche Längenpräfixe und inkohärente Gruppengrößen mit invalid_input abgelehnt werden. Erfolgreiche API-Aufrufe kosten $0.002 pro Element; Validierungsfehler werden nicht berechnet.
Text oder Hex in Git-Base85-Zeilen kodieren
Senden Sie einen JSON-Body mit dem Pflicht-Stringfeld text und lassen Sie mode auf encode, oder setzen Sie mode ausdrücklich auf encode. Standardmäßig ist format text: die Engine kodiert Ihre Zeichenkette als UTF-8 und durchläuft die Bytes in Blöcken von höchstens zweiundfünfzig Oktetten—demselben Maximum, das Git auf jeder Binärpatch-Zeile nutzt. Die Antwort enthält result (zeilenweise verknüpft), mode encode, format, variant git_base85, bytes (Nutzlastlänge vor der Kodierung) und lines (nicht leere Ausgabezeilen).
Zeilen mit Längenpräfix dekodieren und ungültige Eingabe ablehnen
Jede nicht leere Zeile muss mit einem gültigen Längenbuchstaben beginnen; jedes andere erste Zeichen scheitert mit invalid_input und nennt die Längenpräfix-Regel. Bei format text (Standard) werden diese Bytes als UTF-8 mit fatalem Dekodierer gelesen: ungültige Sequenzen lösen invalid_input aus statt Ersatzzeichen, die nachgelagerte Diffs verderben würden. Die Antwort spiegelt mode decode, format, variant git_base85, bytes als dekodierte Länge und lines als Anzahl nicht leerer Eingabezeilen. Validierungsfehler werden auf der Prepaid-API nicht berechnet; verdächtige Einfügungen zu prüfen ist für Betreiber sicher und für Skripte günstig, die Merges vom Parse-Erfolg abhängig machen.
Unterschied zu Ascii85 und Nutzung der API
Nutzen Sie die Prepaid-KIT-API zu $0.002 pro erfolgreichem Element, wenn ein Backend, Bot oder Continuous-Integration-Job Git-Base85-Körper unter Saldo ausgeben oder prüfen muss; fehlgeschlagene Validierung verbraucht diesen Saldo nie.
Integrationsbeispiele
Kompatible Test-Fixtures schreiben
Kodieren Sie bekannte Bytesequenzen in Git-Base85-Zeilen für Unit-Tests von Apply-Werkzeugen, Merge-Bots und Dokumentation, die Gits Alphabet und Längenpräfixe treffen muss.
Dialekt-Vermischung in CI abfangen
Lehnen Sie Adobe Ascii85 oder korrupte Einfügungen mit invalid_input ab, bevor eine Pipeline fremdes Base85 als gültigen Binärpatch-Körper behandelt.
Technische Fragen
Wie kodiere ich Text zu Git Base85?
Senden Sie JSON mit text gleich Ihrer Zeichenkette und mode encode (oder lassen Sie mode weg). Das Feld result hält zeilenweise verknüpfte Zeilen, jeweils mit Längenbuchstabe A–z, und bytes ist die UTF-8-Länge.
Was passiert bei ungültiger Base85-Eingabe?
Die Dekodierung scheitert mit invalid_input bei falschen Längenpräfixen, Zeichen außerhalb des Git-Alphabets, falschen Gruppengrößen oder ungültigem UTF-8, wenn format text ist. Validierungsfehler werden nicht berechnet.
Ist der Git-Base85-Kodierer kostenlos?
Das Browser-Werkzeug läuft kostenlos auf Ihrem Gerät. API-Aufrufe nutzen den Prepaid-KIT-Saldo zu $0.002 pro erfolgreichem Element; invalid_input-Antworten verbrauchen keinen Saldo.