Base64-Encoder & Decoder (URL-Safe)

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.

Szenario auswählen
Dynamischer 24-Bit-Oktett zu 4×6-Bit-Pipeline-Visualisierer (RFC 4648)
3-Byte-Triade #1 / 7RFC 4648 OK
8-Bit-Oktette (3 Bytes = 24 Bits)A (0x41)01000001l (0x6C)01101100a (0x61)01100001010000 • 010110 • 110001 • 100001Base64-6-Bit-Sextette (4 Indizes = 4 Zeichen)[010000]#16Q[010110]#22W[110001]#49x[100001]#33h
Eingabestrom
1-Klick Data URL:
Eingabegröße19 Zeichen
Ausgabegröße28 Bytes
Expansionsrate+47.4%
Aktiver ModusKodieren
VarianteStandard
Integrität100% Gültig
Technische Referenz & Architektur-Leitfaden

Base64 Kodierer & Dekodierer (URL-Safe) — Referenzhandbuch

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.

Base64 Kodierer & Dekodierer (URL-Safe) — Referenzhandbuch — Client-seitige In-Memory-Architektur und Datenfluss
Base64 Kodierer & Dekodierer (URL-Safe) — Referenzhandbuch — Client-seitige In-Memory-Architektur und Datenfluss

Wichtige Parameter & Einstellungen

Base64-Alphabet-TabelleZeichensatz (CharacterSet)

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.

Standard: RFC 4648 Standard
Padding-Zeichen (=)String

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.

Standard: Aktiviert (=)
Zeilenumbruch-BegrenzungGanzzahl / Preset (Integer / Preset)

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).

Standard: Keine (fortlaufend)
Text-ZeichenkodierungEnum

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.

Standard: UTF-8
Data-URL-SchemaString-Format

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.

Standard: Automatische Erkennung

Profi-Tipps & Best Practices

Unicode-Ausnahme von JavaScripts btoa() umgehen

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.

Defekte URL-Query-Strings durch Base64url verhindern

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.

Den 33%-Bandbreiten-Overhead bei Data URIs abwägen

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.

Padding-Berechnung für abgeschnittene Base64-Strings automatisieren

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.

Häufige Fehlerquellen & Fehlerbehebung

⚠️Der zu dekodierende String ist nicht korrekt kodiert (DOMException / atob-Fehler)

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.

⚠️Dekodierter Text zeigt Zeichensalat oder falsche Umlaute (z. B. é, ü oder Ersatzzeichen )

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.

⚠️Ungültige Base64-Länge: String-Länge modulo 4 ergibt 1

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.

Häufig gestellte Fragen (FAQ)

Wie errechnet sich der Größenzuwachs von rund 33 % bei der Base64-Kodierung?▼

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.

Worin unterscheidet sich Base64url von der Standard-Base64-Kodierung?▼

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.

Warum löst JavaScripts btoa bei Unicode-Zeichen einen InvalidCharacterError aus?▼

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.

Wie wird ein Base64-String in ein darstellbares HTML-Data-URL-Bild konvertiert?▼

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.

Wann sollte das Base64-Padding (=) bei Web-Tokens und APIs weggelassen werden?▼

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.

Verwandte Tools & Hilfsprogramme

Alle Tools →