basE91-Codierer
basE91 packt Text in 91 druckbare Zeichen, dichter als Base64 und ohne Auffüllung: Aus „Hello, world!“ wird mit dem Originalalphabet von Joachim Henke >OwJh>}A"=r@@Y?F, und jede basE91-Zeichenkette wird wieder UTF-8-Text. 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!
- Ergebnis
- >OwJh>}A"=r@@Y?F
- Berechnungsmodus
- Encode
- Variante
- base91
- Bytes
- 13
basE91 ist ein kompaktes Binär-zu-Text-Verfahren, das Daten in einundneunzig druckbare ASCII-Zeichen packt, in der Regel dichter als Base64 und nützlich, wenn Sie eine kürzere text-sichere Nutzlast brauchen, ohne den klassischen druckbaren Bereich zu verlassen. Die Kodierung ist deterministisch: UTF-8 und danach Bit-Warteschlangen-Arithmetik basE91; die Dekodierung entfernt Leerzeichen, mappt jedes Symbol über die Umkehrtabelle und lehnt illegale Symbole ab, statt stille Ersetzungen zu erfinden.
UTF-8-Text in basE91 kodieren
Die Engine interpretiert die Zeichenkette als Unicode-Text, serialisiert sie zu UTF-8-Bytes und speist diese Bytes in Joachim Henkes basE91-Bitwarteschlange: jedes Eingabebyte liefert acht Bits, und sobald mehr als dreizehn Bits gepuffert sind, gibt der Encoder ein Zweizeichenpaar aus dem einundneunzig Symbole umfassenden Alphabet aus. Wenn der Wert des Dreizehn-Bit-Fensters höchstens achtundachtzig beträgt, verbraucht der Algorithmus stattdessen vierzehn Bits vor der Ausgabe des Paares — das ist der Trick mit variabler Breite, der basE91 dichter macht als eine feste Base64-Expansion.
Eine abschließende Teilwarteschlange wird als ein oder zwei Restsymbole geleert, damit die Dekodierseite die exakte Bytemenge ohne Füllzeichen wie Gleichheitszeichen wiederherstellen kann. Leere Zeichenketten sind gültig und kodieren zu einem leeren Ergebnis mit null Bytes. Mehrsprachiger Text, Emoji und Satzzeichen roundtrippen vollständig, weil der Pfad volles UTF-8 ist, kein Latin-1-Shortcut.
Die Antwort enthält stets result mit der basE91-Zeichenkette, mode gleich encode, variant gleich base91 und bytes gleich der UTF-8-Länge vor der Kodierung, damit Sie die Nutzlastgröße in Tests assertieren können. Identische Eingaben erzeugen stets identische Ausgaben, weil der Algorithmus reine Arithmetik ohne Netzwerk, ohne Zufallssalz und ohne Wanduhr ist. Nutzen Sie diesen Pfad, wenn Sie eine dichtere text-sichere Darstellung als Base64 für kurze Konfigurationsfragmente, Dokumentationsproben oder legacy basE91-Kanäle brauchen.
basE91 zurück in Text dekodieren und ungültige Zeichen behandeln
Setzen Sie mode auf decode und legen Sie eine basE91-Zeichenkette in text. Führende, abschließende und interne Leerzeichen — einschließlich Leerzeichen, Tabulatoren und Zeilenumbrüchen — werden entfernt, damit mehrzeilige Einfügungen weiterhin funktionieren. Das Alphabet ist streng: nur die einundneunzig von Joachim Henke definierten Symbole (Groß- und Kleinbuchstaben, Ziffern und ein fester Satz druckbarer Satzzeichen ohne Leerzeichen, Bindestrich, einfaches Anführungszeichen und Backslash) sind zulässig.
Der Decoder baut die Bitwarteschlange durch Paarbildung der Symbole neu auf: das erste jedes Paares ist die niedrige Ziffer modulo einundneunzig und das zweite skaliert mit einundneunzig; dreizehn oder vierzehn Bits werden pro Paar freigegeben je nach derselben Achtundachtzig-Schwelle wie bei der Kodierung, danach werden ganze Bytes ausgegeben, bis weniger als acht Bits übrig sind. Ein letztes ungepaartes Symbol gilt als kurzer Flush der Restwarteschlange. Erfolgreiches Decode liefert result als wiederhergestellte Zeichenkette, mode decode, variant base91 und bytes als dekodierte UTF-8-Länge.
Bevorzugen Sie diese Fähigkeit, wenn die Suchintention wörtlich base91-Encoder, basE91-Decoder oder base91-Konvertierung für lesbaren Inhalt ist; Base64, Base58 und Ascii85 bleiben separate Werkzeuge mit eigenen Landings.
Wann sich basE91 lohnt und wo seine Grenzen liegen
Rufen Sie den kostenlosen basE91-Encoder im Browser für Unterrichtsdemos, Support-Playbooks, Token-Prüfungen und einmalige Konvertierungen auf, ohne native Pakete zu installieren oder selbst eine maßgeschneiderte Bitwarteschlange zu programmieren. Ein typischer Workflow kodiert einen kurzen Konfigurationswert zur Speicherung in einem reinen Textticket, versendet ihn per E-Mail oder Chat und dekodiert ihn auf dem Empfangsdienst mit mode decode und prüft, dass bytes der Originallänge entspricht.
Kombinieren Sie diesen Endpunkt mit einem Base64-Werkzeug, wenn ein Partnersystem nur Base64 spricht, halten Sie die Schritte aber auf getrennten Seiten, damit jede Seite einer einzigen Suchintention entspricht — basE91-Dichte versus Base64-Ubiquität. Autoren, die SDKs ausliefern, können das Feld result direkt auf einen Kopier-Button mappen, während mode- und variant-Beschriftungen OpenAPI-Beispiele für Leser selbsterklärend machen, die nur das einundneunzig-Symbol-Alphabet und die variable Warteschlange mit dreizehn oder vierzehn Bits kennen.
Anwendungsfälle
Legacy-basE91-Interoperabilität
Kodieren oder dekodieren Sie Joachim-Henke-basE91-Nutzlasten bei der Integration von Werkzeugen, Archiven oder Bibliotheken, die bereits das klassische einundneunzig-Symbol-Alphabet erwarten.
Häufige Fragen
Wie dekodiere ich basE91 zurück in Text?
Setzen Sie mode auf decode und legen Sie die basE91-Zeichenkette in text. Leerzeichen werden entfernt. Das Feld result ist der wiederhergestellte UTF-8-Text.
Was passiert bei einem ungültigen basE91-Zeichen?
Zeichen außerhalb des einundneunzig-Symbol-basE91-Alphabets werden abgelehnt; Validierungsfehler werden nicht berechnet.
Worin unterscheidet sich basE91 von Base64?
basE91 nutzt ein 91-Symbol-Alphabet und eine variable 13/14-Bit-Warteschlange, typisch etwa 23 % Overhead gegenüber etwa 33 % bei Base64. Dieses Werkzeug implementiert Joachim-Henke-basE91, nicht RFC-4648-Base64.
Wie kodiere ich Text in basE91?
Geben Sie den Text ein und lassen Sie die Voreinstellung Kodieren stehen. Aus „Hello, world!“ wird >OwJh>}A"=r@@Y?F. Ihr Text wird zuerst in UTF-8-Bytes übersetzt, deshalb funktionieren auch Umlaute, andere Schriften und Emojis.
Darf mein basE91-Text Zeilenumbrüche oder Leerzeichen enthalten?
Ja. Beim Dekodieren werden Leerzeichen, Tabulatoren und Zeilenumbrüche am Anfang, am Ende und mittendrin entfernt, sodass auch mehrzeilig eingefügter Text funktioniert. Andere fremde Zeichen, etwa ein Gleichheitszeichen aus Base64, werden dagegen abgelehnt.
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/base91 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, world!"}'const res = await fetch("https://api.kit.forhosting.com/enc/base91", {
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/base91",
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/base91", 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/base91", 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.base91",
"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
Wer nach einem base91-Encoder oder basE91-Decoder sucht, speichert oft kurze Binärtoken in JSON, Tickets oder Chat, vergleicht den Overhead mit Base64 oder stellt eine basE91-Zeichenkette wieder her, die ein anderes Werkzeug mit dem Originalalphabet von Joachim Henke erzeugt hat. Diese Fähigkeit konzentriert sich auf genau diese Alltagaufgabe: wählen Sie den Modus encode oder decode, senden Sie ein Textfeld und erhalten Sie die umgewandelte Zeichenkette plus Bytemenge — oder einen klaren invalid_input-Fehler, wenn die zu dekodierende Nutzlast ein Zeichen außerhalb des basE91-Alphabets enthält.
UTF-8-Text in basE91 kodieren
Senden Sie einen JSON-Body mit dem Pflicht-Stringfeld text auf die Klartextnachricht, die Sie in basE91 darstellen möchten, und lassen Sie mode beim Standard encode oder setzen Sie mode ausdrücklich auf encode. Optionale Aliase input, value und s werden für dasselbe Feld akzeptiert, wenn Sie Clients aus älteren Formularnamen erzeugen.
basE91 zurück in Text dekodieren und ungültige Zeichen behandeln
Jedes andere Zeichen — einschließlich Base64-Füll-Gleichheitszeichen, URL-sicherer Bindestrich oder Unterstrich aus fremden Alphabeten oder binäres Rauschen — führt sofort zu invalid_input mit einer Meldung, die die Bedingung ungültiges basE91-Zeichen benennt, damit Clients die Einfügung korrigieren statt beschädigtes Unicode zu erhalten. Nach der Alphabetprüfung werden die wiederhergestellten Bytes als UTF-8 mit einem fatalen Decoder dekodiert: ist die Nutzlast kein gültiger Unicode-Text, erhalten Sie invalid_input statt Ersatzzeichen, die nachgelagerte Anzeigen beschädigen würden. Validierungsfehler werden auf der Prepaid-API nicht berechnet, sodass das Prüfen eines verdächtigen Tokens für Betreiber günstig und für Endnutzer sicher ist.
API-Nutzung, Preise, Workflows und praktische Grenzen
Nutzen Sie die Prepaid-KIT-API, wenn ein Backend, eine Serverless-Funktion oder ein SDK denselben Encode- oder Decode-Schritt unter Guthaben zu $0.002 pro erfolgreichem Element braucht; fehlgeschlagene Validierung wird nicht berechnet, sobald die Engine die Anfrage ablehnt.
Integrationsbeispiele
Dichte text-sichere Konfigurations-Token
Packen Sie kurze UTF-8-Konfigurationsfragmente enger als Base64 für Tickets, Chat und JSON und dekodieren Sie sie auf dem Empfangsdienst mit demselben Feld mode.
Dokumentation und CI-Golden-Checks
Fixieren Sie Encode- und Decode-Fixtures, damit Dokumentationsproben und Continuous-Integration-Tests schnell fehlschlagen, wenn das basE91-Alphabet oder die Bitwarteschlangenregeln abweichen.
Technische Fragen
Wie kodiere ich Text in basE91?
Senden Sie JSON mit text auf Ihre UTF-8-Klartextzeichenkette und mode encode (oder lassen Sie mode weg; encode ist der Standard). Das Antwortfeld result enthält die basE91-Zeichenkette und bytes ist die UTF-8-Länge.
Ist der basE91-Encoder kostenlos?
Das Browser-Werkzeug läuft kostenlos auf Ihrem Gerät. API-Aufrufe nutzen Prepaid-KIT-Guthaben zu $0.002 pro erfolgreichem Element; Validierungsfehler werden nicht berechnet.