Datei hochladen
  1. base64hub
  2. Weitere Basen
  3. Base64 in Byte-Array

Base64 in Byte-Array für C, Java, Python, Go, C#

Fügen Sie Base64 ein und erhalten Sie die dekodierten Bytes als Array-Literal, das Sie direkt in Quellcode einfügen können. Wählen Sie die Sprache unter der Ausgabe: C/C++, JavaScript, Python, Java, Go, C# oder Rust.

Kostenlos ohne Anmeldung, ohne Limits Lokal kein Upload 7 Sprachen, von C bis Rust Aktualisiert 27.10.2026
Eingabe 0Bytes 0 BAusgabe 0

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

So wandeln Sie Base64 in ein Byte-Array um

  1. Fügen Sie das Base64 in die Eingabe ein. Leerraum, fehlendes Padding, URL-sichere Zeichen und ein data:-Präfix werden akzeptiert.
  2. Wählen Sie unter der Ausgabe mit Sprache das Ziel: C / C++, JavaScript, Python, Java, Go, C# oder Rust. Beim Öffnen der Seite ist JavaScript ausgewählt.
  3. Ausgabe kopieren und die Deklaration in Ihren Code einfügen. Benennen Sie data nach Bedarf um.
  4. Die Menüs Von und Nach über dem Tool ändern das Eingabe- oder Ausgabeformat, etwa um Hex statt Base64 einzulesen.

Für den Rückweg von einem Array zu Base64 nutzen Sie Byte-Array in Base64, das alle diese Formate liest.

Was jede Sprache bekommt

Das Base64 3q2+7wABAgOAf/8K ergibt dekodiert 12 Bytes, de ad be ef 00 01 02 03 80 7f ff 0a. Das ist die Ausgabe für jede Einstellung von Sprache:

const unsigned char data[12] = {
    0xde, 0xad, 0xbe, 0xef, 0x00, 0x01, 0x02, 0x03, 0x80, 0x7f, 0xff, 0x0a
};
const data = new Uint8Array([
    0xde, 0xad, 0xbe, 0xef, 0x00, 0x01, 0x02, 0x03, 0x80, 0x7f, 0xff, 0x0a
]);
data = b'\xde\xad\xbe\xef\x00\x01\x02\x03\x80\x7f\xff\x0a'
byte[] data = new byte[] {
    -34, -83, -66, -17, 0, 1, 2, 3, -128, 127, -1, 10
};
data := []byte{
	0xde, 0xad, 0xbe, 0xef, 0x00, 0x01, 0x02, 0x03, 0x80, 0x7f, 0xff, 0x0a,
}
byte[] data = new byte[] {
    0xde, 0xad, 0xbe, 0xef, 0x00, 0x01, 0x02, 0x03, 0x80, 0x7f, 0xff, 0x0a
};
let data: [u8; 12] = [
    0xde, 0xad, 0xbe, 0xef, 0x00, 0x01, 0x02, 0x03, 0x80, 0x7f, 0xff, 0x0a
];

Hinweise zur Ausgabe:

  • Arrays brechen nach 12 Werten pro Zeile um. Python schreibt 16 Bytes pro b'...'-String und fügt längere Daten in Klammern zusammen, die Python beim Kompilieren verkettet.
  • Java verwendet Dezimalzahlen mit Vorzeichen, weil (byte) 0xde bei jedem Wert über 0x7f einen Cast bräuchte. -34 und 0xde sind dieselben Bits.
  • C und Rust deklarieren die Länge. Das C-Array ist unsigned char, Werte über 127 passen also ohne Warnungen.
  • Go bekommt ein Komma nach dem letzten Wert. Der Compiler verlangt es, wenn die schließende Klammer in einer eigenen Zeile steht.
  • Python schreibt jedes Byte als \x.., auch druckbare, damit das Literal eindeutig zu lesen und zu vergleichen ist.

Bytes einbetten oder Base64 behalten?

Ein Byte-Array-Literal ist sinnvoll, wenn das Programm keinen Base64-Decoder hat oder keine Zeit mit dem Dekodieren verbringen soll: Firmware für Mikrocontroller, Test-Fixtures, ein kleiner Schlüssel oder ein Zertifikat, das in ein Binary einkompiliert wird, eine Lookup-Tabelle. Der Preis ist die Größe der Quelldatei. Jedes Byte braucht etwa sechs Zeichen (0xde, ), mehr als das Vierfache des Base64, aus 10 KB Daten werden also rund 60 KB Code.

Für alles, was sich ändert oder größer als ein paar Kilobyte ist, behalten Sie die Base64-Zeichenkette und dekodieren beim Start:

import base64
data = base64.b64decode("3q2+7wABAgOAf/8K")
byte[] data = Convert.FromBase64String("3q2+7wABAgOAf/8K");
byte[] data = java.util.Base64.getDecoder().decode("3q2+7wABAgOAf/8K");
const data = Uint8Array.from(atob("3q2+7wABAgOAf/8K"), c => c.charCodeAt(0));

Neuere Browser bieten außerdem Uint8Array.fromBase64(), beschrieben in Uint8Array.fromBase64 und toBase64. Die Sprachseiten zu C#, Java, Go, Rust und Python zeigen die Decoder ausführlicher.

Häufige Probleme

  • „Ungültig: Base64“. Die Zeichenkette enthält ein Zeichen außerhalb des Alphabets oder wurde abgeschnitten. Die Meldung nennt die Position; der Base64-Validator erklärt, was an einer kaputten Zeichenkette nicht stimmt.
  • „Narrowing conversion“-Fehler in C++. char data[] = {0xde}; lässt sich ab C++11 nicht kompilieren, weil einfaches char auf den meisten Plattformen ein Vorzeichen hat und 222 nicht hineinpasst. Behalten Sie das erzeugte unsigned char oder verwenden Sie uint8_t.
  • Riesige Ausgabe. Bei großen Dateien gibt xxd -i file.bin direkt ein C-Array aus, und Einbettungswerkzeuge wie #embed aus C23 kommen ganz ohne Array aus.

Häufige Fragen

Wie wandle ich in C# eine Base64-Zeichenkette in ein Byte-Array um?

Zur Laufzeit mit byte[] data = Convert.FromBase64String(s);. Wollen Sie die Bytes stattdessen fest einbauen, stellen Sie hier Sprache auf C# und fügen die Deklaration new byte[] { ... } in Ihren Quellcode ein.

Warum enthält das Java-Array negative Zahlen?

Javas byte hat ein Vorzeichen und reicht von −128 bis 127. Bytes von 0x80 bis 0xff werden als −128 bis −1 geschrieben, 0xde erscheint also als -34. Die Bits sind dieselben; b & 0xff liefert den vorzeichenlosen Wert zurück.

Wie mache ich in Python aus Base64 Bytes?

base64.b64decode(s) liefert ein bytes-Objekt. Stellen Sie hier Sprache auf Python, wenn Sie diesen Wert als b'\x..'-Literal ausgeschrieben haben möchten.

Ist die JavaScript-Ausgabe ein Uint8Array?

Ja, const data = new Uint8Array([...]) mit Hex-Werten. Das läuft in Browsern und Node.js; in Node können Sie es mit Buffer.from(data) umhüllen, wenn eine API einen Buffer braucht.