Base64-Encoder & Decoder (URL-Safe)
Base64-Zeichenketten oder Binärdateien direkt im Browser kodieren und dekodieren. Unterstützt URL-safe base64url, UTF-8 Unicode, MIME-Zeilenumbruch, Data URLs und Live-Fehlerkorrektur.
Base64-Zeichenketten oder Binärdateien direkt im Browser kodieren und dekodieren. Unterstützt URL-safe base64url, UTF-8 Unicode, MIME-Zeilenumbruch, Data URLs und Live-Fehlerkorrektur.
Base64-Zeichenketten und Binärdateien direkt im Browser kodieren und dekodieren. Unterstützt URL-sicheres base64url, UTF-8-Unicode, MIME-Zeilenumbrüche, Data URLs und Echtzeit-Fehlerkorrektur.
64-Zeichen-Zuordnungstabelle für 6-Bit-Werte von 0 bis 63. Der RFC 4648-Standard nutzt [A-Za-z0-9+/], während die URL-sichere Variante '+' und '/' durch '-' und '_' ersetzt.
Abschließendes Füllzeichen, wenn der binäre Eingabestrom kein Vielfaches von 24 Bit ist. Fügt '==' bei 1 verbleibenden Rest-Byte oder '=' bei 2 Rest-Bytes an. Wird in base64url weggelassen.
Spaltenanzahl, nach der ein CRLF- oder LF-Zeilenumbruch eingefügt wird. MIME verwendet 76 Zeichen pro Zeile, PEM 64 Zeichen, und moderne Web-APIs in der Regel 'Keine' (fortlaufend).
Byte-Serialisierungsstandard für Klartext. UTF-8 verarbeitet alle weltweiten Unicode-Zeichen und Emojis. ISO-8859-1 (Latin-1) und ASCII sind auf den 1-Byte-Bereich beschränkt.
URI-Format mit MIME-Präfix (data:[<mediatype>][;base64],<data>), mit dem Bilder, Schriften, Audio- und Dokumentdateien direkt in HTML- und CSS-Dateien eingebettet werden.
Die native Browserfunktion window.btoa() wirft einen InvalidCharacterError, sobald ein Zeichen außerhalb des Latin-1-Bereichs (Codepoint > 255) auftritt. Um moderne UTF-8-Texte mit Umlauten, Emojis oder internationalen Schriftzeichen sicher zu kodieren, wandeln Sie den String mit new TextEncoder().encode(str) in ein Uint8Array um, bevor der Byte-Stream nach Base64 überführt wird.
Standard-Base64 enthält das Pluszeichen (+) und den Schrägstrich (/). Werden diese in HTTP-URL-Query-Parametern übergeben, interpretieren viele Webserver '+' fälschlicherweise als Leerzeichen und beschädigen die Nutzlast. Verwenden Sie für URLs und Pfade stets die URL-sichere Base64url-Spezifikation (RFC 4648 §5), die '+' durch '-' und '/' durch '_' ersetzt sowie das abschließende '='-Padding entfernt.
Das Einbetten von Assets als Data URLs eliminiert HTTP-Roundtrips, vergrößert jedoch Binärdaten um exakt 33,33 % (4 Zeichen pro 3 Bytes) und verhindert das separate Browser-Caching. Beschränken Sie Inline-Data-URLs auf winzige Icons und kritische SVGs unter 4 KB; laden Sie größere Mediendateien als externe, über HTTP/2 oder HTTP/3 zwischengespeicherte Ressourcen.
Falls eine API oder ein Protokoll nachfolgende Gleichheitszeichen abschneidet, berechnen Sie das erforderliche Padding mittels Modulo-Arithmetik: rest = stringLength % 4. Ist der Rest 2, hängen Sie '==' an. Ist der Rest 3, fügen Sie '=' an. Beträgt der Rest 1, ist der String fehlerhaft, da 6 Bits kein vollständiges 8-Bit-Oktett darstellen können.
Der Eingabestring enthält Zeichen außerhalb des Base64-Alphabets (wie Leerzeichen, Zeilenumbrüche oder URL-prozentkodierte Zeichen wie %2B). Aktivieren Sie die automatische Bereinigung, um Whitespace zu entfernen und Bindestriche/Unterstriche zu normalisieren, oder prüfen Sie, ob die Daten im URL-sicheren base64url-Format vorliegen.
Ursache ist eine Diskrepanz bei der Zeichenkodierung: Der ursprüngliche Text wurde als UTF-8-Mehrbyte-Sequenz kodiert, der Dekodierer interpretiert die Bytes jedoch als ISO-8859-1 (Latin-1) oder umgekehrt. Stellen Sie die Text-Zeichenkodierung von Latin-1/ASCII auf UTF-8 um, um die korrekte Mehrbyte-Zeichendarstellung wiederherzustellen.
Base64 fasst jeweils 6 Bit zu einem Zeichen zusammen. Eine kodierte Länge mit einem Rest von 1 mod 4 bedeutet, dass nur 6 Bit zur Verfügung stehen – zu wenig, um auch nur ein einzelnes 8-Bit-Byte zu rekonstruieren. Dies belegt, dass der String bei der Netzwerkübertragung oder beim Kopieren abgeschnitten wurde. Fordern Sie die vollständige Nutzlast von der Quelle an.
Bei der Base64-Kodierung werden jeweils 3 Bytes (24 Bits) binärer Eingabedaten in 4 ASCII-Zeichen umgewandelt, die jeweils 6 Bits repräsentieren. Da jedes Ausgabezeichen im Arbeitsspeicher und bei der HTTP-Übertragung als 8-Bit-ASCII-Byte gespeichert wird, werden aus 24 Eingangsbits 32 Ausgangsbits. Dies entspricht einem festen mathematischen Verhältnis von 4:3, was zu einem exakten Datenzuwachs von 33,33 % vor Zeilenumbrüchen und Padding führt.
Standard-Base64 (RFC 4648 §4) verwendet '+' und '/' als 62. und 63. Zeichen sowie '=' für das Padding. In URL-Query-Parametern wird '+' jedoch als Leerzeichen interpretiert und '/' dient als Pfadtrennzeichen. Base64url (RFC 4648 §5) ersetzt '+' durch den Bindestrich (-) und '/' durch den Unterstrich (_) und verzichtet in der Regel auf das abschließende '='-Padding, um eine fehlerfreie Übertragung in URLs und Dateinamen ohne zusätzliches URL-Encoding zu gewährleisten.
Die browsernative Funktion btoa() wurde ursprünglich für Binärstrings konzipiert, bei denen jeder Zeichen-Codepoint in ein einzelnes 8-Bit-Byte (0 bis 255) passen muss. Moderne Unicode-Zeichen wie deutsche Umlaute (ä, ö, ü), Emojis oder asiatische Schriftzeichen belegen in UTF-8 jedoch 2 bis 4 Bytes. Die Übergabe eines Codepoints größer als 255 verletzt die Spezifikation von btoa. Moderne Webanwendungen müssen den String daher vor der Base64-Konvertierung mittels TextEncoder in ein UTF-8-Byte-Array serialisieren.
Um ein Base64-Bild ohne externe Bilddatei in HTML oder CSS anzuzeigen, stellen Sie dem String den passenden MIME-Typ und die Base64-Kennung voran: data:image/[format];base64,[daten]. Für ein PNG-Bild lautet das Format beispielsweise data:image/png;base64,iVBORw0KGgo... Diese vollständige Zeichenkette lässt sich direkt in das src-Attribut eines HTML-<img>-Tags oder in die CSS-Eigenschaft background-image: url(...) einfügen.
Das Base64-Padding mit Gleichheitszeichen (=) sollte bei der Erstellung von JSON Web Tokens (JWTs), OAuth-Access-Tokens und URL-Slugs gemäß den Spezifikationen RFC 7515 (JWS) und RFC 4648 §5 weggelassen werden. Da dem Parser die genaue Länge des Strings bekannt ist, lassen sich die fehlenden Bits über den Modulo-Wert (string.length % 4) mathematisch ermitteln. Dadurch ist das Padding redundant und spart wertvolle Zeichenlänge in URLs ein.
Konvertieren Sie JSON-Objekte direkt im Browser in saubere, typsichere TypeScript-Interfaces oder Typ-Aliase mit automatischer Objektschachtelung.
Inferieren und generieren Sie TypeScript Zod-Schemas, Typdefinitionen und verschachtelte Validierungsregeln aus rohen JSON-Payloads.
Konvertieren Sie JSON-Strukturen in hochperformante TypeBox Type.Object-Definitionen für Fastify, Ajv und TypeScript-Laufzeitvalidierung.
Konvertieren Sie JSON-Daten in schlanke, tree-shakable Valibot-Schemadefinitionen mit v.object, v.string, v.number und Array-Validatoren.
Generieren Sie produktionsreife Python Pydantic v2 BaseModel-Klassen, TypedDict oder Standard-Dataclasses aus JSON mit Typ-Hints und automatischen Feld-Aliasen.
Konvertieren Sie JSON-Objekte in idiomatische Go-Struct-Definitionen mit Typinferenz, verschachtelter Entkopplung und anpassbaren Struct-Tags.