Datei hochladen
  1. base64hub
  2. Text-Tools
  3. Base64 in UTF-8

Base64 in UTF-8: Base64 in Unicode-Text dekodieren

Fügen Sie Base64 ein und lesen Sie es als UTF-8-Text. Sind die Bytes kein gültiges UTF-8, markiert das Tool die fehlerhaften Stellen mit � und sagt es Ihnen, sodass ein falscher Zeichensatz oder eine abgeschnittene Zeichenkette sofort auffällt.

Kostenlos ohne Anmeldung, ohne Limits Lokal kein Upload Aktualisiert 27.10.2026
Eingabe 0 BAusgabe 0 BGröße –

Wird in Ihrem Browser verarbeitet. Diese Seite kann Ihre Daten nirgendwohin senden – woher wir das wissen

So dekodieren Sie Base64 in UTF-8

  1. Fügen Sie das Base64 in Eingabe · Base64 ein. Der Zeichensatz steht bereits auf UTF-8.
  2. Lesen Sie das Ergebnis in Ausgabe · Text. Die Statuszeile zeigt die Byteanzahl und den erkannten Inhaltstyp.
  3. Meldet die Statuszeile „Einige Bytes sind kein gültiges UTF-8“, liegt der Text in einem anderen Zeichensatz vor. Versuchen Sie Automatisch, Windows-1252 oder UTF-16LE.
  4. Ausgabe kopieren kopiert den Text; Herunterladen speichert die dekodierten Bytes unverändert.

Für die andere Richtung nehmen Sie UTF-8 in Base64.

Beispiele

Base64Als UTF-8 dekodiertWas es zeigt
8J+YgA==😀Ein Emoji, 4 Bytes
4oKs€3 Bytes, kein Padding nötig
bmHDr3ZlIGNhZsOpnaïve caféBuchstaben mit Akzent, je 2 Bytes
77u/SGk=Hi5 Bytes: eine Byte-Order-Mark, dann Hi
Y2Fm6Q==caf�E9 ist é in Latin-1, in UTF-8 ungültig
8J+Y�Ein Emoji, nach 3 seiner 4 Bytes abgeschnitten
Y2Fmw4PCqQ==caféGültiges UTF-8 von Text, der schon verstümmelt war

Die letzten drei Zeilen zeigen die Probleme, um die es weiter unten geht: ein falscher Zeichensatz, eine abgeschnittene Zeichenkette und Text, der schon vor dem Kodieren verstümmelt war.

Ungültiges UTF-8 und das Ersatzzeichen

UTF-8 hat strenge Regeln: Ein Byte über 7F muss Teil einer 2-, 3- oder 4-Byte-Folge mit festem Muster sein. Bytes, die das Muster brechen, lassen sich nicht als UTF-8 lesen. Der Decoder ersetzt jede fehlerhafte Folge durch U+FFFD (�) und fügt den Hinweis „Einige Bytes sind kein gültiges UTF-8. Versuchen Sie einen anderen Zeichensatz.“ hinzu. Nichts wird stillschweigend verworfen, jedes � markiert also genau die Stelle eines Problems.

Zwei Ursachen decken fast jeden Fall ab:

  • Ein anderer Zeichensatz. Y2Fm6Q== enthält 63 61 66 E9, das ist café in ISO-8859-1 und Windows-1252. Stellen Sie den Zeichensatz um, und der Text erscheint. Die Seite Base64-Decoder listet die typischen Symptome je Zeichensatz auf.
  • Eine abgeschnittene Zeichenkette. Wurde Base64 gekürzt, etwa durch eine Spaltenbegrenzung in einer Datenbank oder eine Logzeile, kann dem letzten Zeichen ein Teil seiner Bytes fehlen. 8J+YgA== ist ein vollständiges Emoji; 8J+Y ist dasselbe Emoji ohne sein letztes Byte und wird zu einem einzelnen � dekodiert. Suchen Sie den vollständigen Wert an der Quelle.

Doppelt kodierter Text (é und ’)

Zeigt die Ausgabe é statt é, ü statt ü oder ’ statt eines typografischen Apostrophs, liegt es nicht am Decoder. Irgendwo vorher wurden UTF-8-Bytes als Windows-1252 gelesen und wieder als UTF-8 gespeichert, wodurch jedes Sonderzeichen zu zwei oder drei falschen wurde. Das Base64 bewahrt diesen beschädigten Text getreu: Y2Fmw4PCqQ== ist gültiges UTF-8 für die sieben Byte lange Zeichenkette café.

Im Code lässt sich eine solche Zeichenkette oft reparieren, indem man den Fehler umkehrt: den Text als Windows-1252 kodieren und die Bytes als UTF-8 dekodieren. Die eigentliche Lösung liegt im System, das ihn geschrieben hat.

Byte-Order-Marks

Manche Editoren, vor allem unter Windows, beginnen UTF-8-Dateien mit den Bytes EF BB BF, einer Byte-Order-Mark. In Base64 beginnt die Datei dann mit 77u/. Der Decoder erkennt die Markierung und lässt sie im Text weg, während Herunterladen die Bytes genau so behält, wie sie waren. Im Code müssen Sie sie unter Umständen selbst entfernen:

import base64

raw = base64.b64decode("77u/SGk=")
raw.decode("utf-8")       # '\ufeffHi'
raw.decode("utf-8-sig")   # 'Hi'

base64.b64decode("Y2Fm6Q==").decode("utf-8", errors="replace")   # 'caf�'

Ohne errors="replace" wirft Python bei ungültigen Bytes UnicodeDecodeError. In JavaScript wirft new TextDecoder("utf-8", { fatal: true }) einen TypeError, statt � einzufügen, und der Standard-Decoder entfernt die BOM genau wie dieses Tool. Mehr dazu unter Base64 in Python und Base64 in JavaScript.

Häufige Fragen

Wie dekodiere ich Base64 in eine UTF-8-Zeichenkette?

Dekodieren Sie das Base64 zu Bytes und interpretieren Sie die Bytes dann als UTF-8. Oben geschieht das in einem Schritt. In Python ist es base64.b64decode(s).decode("utf-8"), im Browser new TextDecoder().decode(bytes).

Was bedeutet das Zeichen � in der Ausgabe?

Das ist U+FFFD, das Ersatzzeichen. Der Decoder setzt es überall dort ein, wo die Bytes kein gültiges UTF-8 bilden. Meist wurde der Text in einem anderen Zeichensatz kodiert, oder das Base64 wurde abgeschnitten.

Warum beginnt mein dekodierter Text mit einem unsichtbaren Zeichen?

Die Quelle hatte vermutlich eine UTF-8-Byte-Order-Mark (Base64, das mit 77u/ beginnt). Dieses Tool entfernt sie, Pythons einfaches .decode("utf-8") behält sie aber als \ufeff; mit "utf-8-sig" verschwindet sie.

Ist UTF-8 die richtige Wahl für mein Base64?

Sehr wahrscheinlich. JSON, das Web, Linux und moderne APIs verwenden alle UTF-8. Daten aus älteren Windows-Programmen oder aus .NET- und PowerShell-Strings können stattdessen Windows-125x oder UTF-16 sein.