So wandeln Sie ein Byte-Array in Base64 um
- Fügen Sie das Array in die Eingabe ein. Die ganze Deklaration ist in Ordnung: Typnamen, Variablennamen, Klammern und Semikolons werden übersprungen.
- Das Base64 erscheint in der Ausgabe. Padding (=) und Zeilenumbruch unter der Ausgabe steuern das Format.
- Ausgabe kopieren, oder stellen Sie das Menü Nach auf ein anderes Format wie Hex oder Base64URL.
- Um Base64 wieder in eine Deklaration für eine gewählte Sprache zu verwandeln, nehmen Sie Base64 in Byte-Array.
Was Sie einfügen können
Jede Zeile unten ergibt SGkh, das Base64 der drei Bytes H, i, !:
| Sprache | Eingabe |
|---|---|
| C, C++ | unsigned char d[] = {0x48, 0x69, 0x21}; |
| JavaScript | new Uint8Array([72, 105, 33]), Uint8Array.from([72, 105, 33]), Buffer.from([72, 105, 33]) |
| Python | b'Hi!', b'\x48\x69\x21', bytes([72, 105, 33]), bytearray(b'Hi!') |
| Java | new byte[]{72, 105, 33}, Casts wie (byte) 0x48 |
| Go | []byte{0x48, 0x69, 0x21} |
| C# | new byte[] { 0x48, 0x69, 0x21 } |
| Rust | [0x48u8, 0x69, 0x21], vec![72u8, 105, 33] |
| Einfache Liste | 72, 105, 33 oder 72 105 33 |
Werte können dezimal sein, hexadezimal mit 0x, binär mit 0b, oktal mit 0o oder ASCII-Zeichenliterale wie 'H'. Typsuffixe wie u8, U und L werden ignoriert. Python-Literale werden mit ihren vollständigen Escape-Regeln gelesen, einschließlich \n, \t und oktaler Escapes, und mehrere b'...'-Stücke hintereinander, wie in einem mehrzeiligen Literal in Klammern, werden zusammengefügt.
Vorzeichenbehaftete Bytes und Wertebereiche
Java kennt kein vorzeichenloses Byte, daher enthalten Arrays, die aus Java oder Kotlin ausgegeben wurden, negative Zahlen. Der Konverter liest −128 bis −1 als die Bytes 0x80 bis 0xff:
| Eingabe | Bytes | Base64 |
|---|---|---|
{72, 105, -1} | 48 69 ff | SGn/ |
new byte[]{72, 105, (byte) 0xff, -1} | 48 69 ff ff | SGn//w== |
[-34, -83, -66, -17] | de ad be ef | 3q2+7w== |
Alles über 255 oder unter −128 bricht die Umwandlung mit dem Wert und seiner Position ab. Zahlen mit führender Null wie 072 werden als dezimal 72 gelesen, nicht als C-Oktal 58, was dem entspricht, was die meisten meinen, wenn sie eine Liste von Bytewerten einfügen.
Formate, die diese Seite nicht liest
- Die Konsolenausgabe
<Buffer 48 69 21>von Node. Diese Werte sind Hex ohne0x, und der Konverter würde sie dezimal lesen. Kopieren Sie den Teil zwischenBufferund>in Hex in Base64. - C-Strings in Anführungszeichen wie
"Hi!". Für Text nehmen Sie Text in Base64, oder schreiben Sie die Bytes als Array. - JSON-Objekte wie
{"type":"Buffer","data":[72,105,33]}. Fügen Sie nur den Teil[72,105,33]ein, hier oder in Dezimal in Base64.
Byte-Array in Base64 im Code
String b64 = java.util.Base64.getEncoder().encodeToString(new byte[] {72, 105, 33}); // "SGkh"
string b64 = Convert.ToBase64String(new byte[] { 0x48, 0x69, 0x21 }); // "SGkh"
import base64
base64.b64encode(bytes([72, 105, 33])).decode() # 'SGkh'
btoa(String.fromCharCode(...new Uint8Array([72, 105, 33]))); // 'SGkh'
Der Spread-Operator übergibt jedes Byte als eigenes Argument und scheitert deshalb an großen Arrays: In Node 24 wirft er irgendwo zwischen 125.000 und 200.000 Elementen Maximum call stack size exceeded, und die Grenze ist je nach Engine verschieden. Für große Daten umgehen Buffer.from(arr).toString("base64") in Node oder arr.toBase64() in aktuellen Browsern das Problem; siehe Uint8Array.toBase64. Mehr zu jeder Sprache: Java, C#, Python, JavaScript.
Häufige Fragen
Wie wandle ich ein byte[] in Java in Base64 um?
java.util.Base64.getEncoder().encodeToString(bytes). Um ein fest eingetragenes Array zu prüfen, fügen Sie die ganze Deklaration new byte[] { ... } hier ein, samt Casts und negativen Werten.
Kann ich ein Python-bytes-Literal einfügen?
Ja. b'Hi!', b'\x48\x69\x21', oktale Escapes wie \041, bytes([72, 105, 33]) und mehrere über Zeilen verteilte Literale funktionieren alle.
Warum erhalte ich „passt nicht in ein Byte“?
Ein Wert liegt über 255 oder unter −128. Oft besteht das Array eigentlich aus 16- oder 32-Bit-Ganzzahlen wie short[] oder int[], die erst in einer gewählten Byte-Reihenfolge in Bytes zerlegt werden müssen.
Werden Zahlen ohne 0x als Hex gelesen?
Nein. Ein einfaches 48 ist dezimal 48. Hex-Werte brauchen das Präfix 0x, oder Sie fügen sie stattdessen in Hex in Base64 ein, das Hex ohne Präfix liest.