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

UTF-16 in Base64: Text als UTF-16LE oder UTF-16BE kodieren

Text wird in UTF-16-Bytes in Little-Endian umgewandelt, das Format, das Windows und .NET für Strings verwenden, und dann in Base64 kodiert. Für Big-Endian-Systeme stellen Sie den Zeichensatz auf UTF-16BE.

Kostenlos ohne Anmeldung, ohne Limits Lokal kein Upload LE / BE Byte-Reihenfolge wählbar, ohne BOM 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 kodieren Sie Text als UTF-16-Base64

  1. Tippen oder fügen Sie Ihren Text in Eingabe · Text ein. Zeichensatz ist auf UTF-16LE voreingestellt.
  2. Kopieren Sie das Base64 aus Ausgabe · Base64. Die Angabe Eingabe zeigt die Anzahl der UTF-16-Bytes, doppelt so viel wie bei einfachem englischem Text.
  3. Für einen Big-Endian-Empfänger stellen Sie Zeichensatz auf UTF-16BE.
  4. Tauschen dekodiert das Ergebnis für eine schnelle Kontrolle wieder; Base64 in UTF-16 ist der eigentliche Decoder.

UTF-16LE und UTF-16BE

UTF-16 speichert jedes Zeichen als eine oder zwei 16-Bit-Code-Einheiten. Little-Endian schreibt das niederwertige Byte zuerst, Big-Endian das höherwertige. Windows und .NET verwenden Little-Endian; Javas Encoder UTF-16 und viele Netzwerkformate verwenden Big-Endian.

TextUTF-16LE-BytesUTF-16LE-Base64UTF-16BE-Base64
Hi48 00 69 00SABpAA==AEgAaQ==
Hello10 BytesSABlAGwAbABvAA==AEgAZQBsAGwAbw==
€AC 20rCA=IKw=
👋3D D8 4B DCPdhL3A==2D3cSw==

Zeichen außerhalb der Basic Multilingual Plane, darunter alle Emoji, belegen zwei Code-Einheiten, ein sogenanntes Surrogate-Paar. 👋 (U+1F44B) wird zu D83D DC4B, das sind die 4 Bytes in der letzten Zeile.

Da jeder ASCII-Buchstabe mit einem Null-Byte gepaart ist, ist UTF-16-Base64 englischen Texts mit A-Zeichen durchsetzt. Eine unbekannte Zeichenkette mit diesem Muster sollten Sie als UTF-16 dekodieren.

Wo UTF-16-Base64 verwendet wird

  • PowerShell -EncodedCommand. powershell -EncodedCommand RwBlAHQALQBEAGEAdABlAA== führt Get-Date aus. Ein häufiger Grund, warum solche Befehle scheitern, ist ein als UTF-8 kodiertes Skript. Das PowerShell-EncodedCommand-Tool ergänzt das Befehlspräfix, warnt vor dem Längenlimit von cmd.exe und dekodiert auch Befehle aus Logs.
  • .NET-Code. Encoding.Unicode in C# ist UTF-16LE, daher erzeugt Convert.ToBase64String(Encoding.Unicode.GetBytes(s)) dieselbe Ausgabe wie diese Seite.
  • Windows-Daten. Strings aus der Registry, aus NVARCHAR-Spalten, die in SQL Server nach Binär gecastet wurden, und aus vielen Windows-APIs sind UTF-16LE.

Byte-Order-Marks

Dieses Tool schreibt keine Byte-Order-Mark, und genau das wollen PowerShell und die meisten APIs. Manche Bibliotheken fügen automatisch eine hinzu:

QuelleErste BytesBase64 von Hi
Dieses Tool, UTF-16LE48 00SABpAA==
Python "Hi".encode("utf-16")FF FE 48 00//5IAGkA
Java "Hi".getBytes(UTF_16)FE FF 00 48/v8ASABp

Muss Ihr Base64 mit einer dieser Varianten übereinstimmen, kodieren Sie im Code mit ausdrücklicher Byte-Reihenfolge, wie unten gezeigt.

UTF-16 in Base64 im Code

import base64

base64.b64encode("Get-Date".encode("utf-16-le")).decode()   # 'RwBlAHQALQBEAGEAdABlAA=='
base64.b64encode("Hi".encode("utf-16-be")).decode()         # 'AEgAaQ=='
// Node.js has a little-endian codec only
Buffer.from("Get-Date", "utf16le").toString("base64");   // "RwBlAHQALQBEAGEAdABlAA=="
[Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Get-Date'))

Verwenden Sie in Python utf-16-le statt utf-16, es sei denn, Sie wollen die BOM. Weitere Beispiele: Python, Node.js.

Häufige Fragen

Warum braucht PowerShell UTF-16LE-Base64?

powershell -EncodedCommand erwartet das Base64 der UTF-16LE-Bytes des Skripts, weil Windows Strings intern so speichert. UTF-8-Base64 wird zu den falschen Zeichen dekodiert, und der Befehl schlägt fehl. Das PowerShell-EncodedCommand-Tool baut die ganze Befehlszeile.

Was ist der Unterschied zwischen UTF-16LE und UTF-16BE?

Die Reihenfolge der beiden Bytes in jeder Code-Einheit. H ist in Little-Endian 48 00 und in Big-Endian 00 48, Hi wird also als SABpAA== bzw. AEgAaQ== kodiert.

Beginnt die Ausgabe mit einer Byte-Order-Mark?

Nein, kodiert werden nur die Bytes des Texts selbst. Pythons Codec "utf-16" und Javas Zeichensatz UTF_16 fügen eine hinzu, deshalb beginnt deren Base64 mit //5 oder /v8.

Warum ist UTF-16-Base64 so lang?

UTF-16 verwendet mindestens 2 Bytes pro Zeichen, englischer Text verdoppelt sich also, bevor Base64 sein Drittel draufschlägt. Hello hat in UTF-8 8 Base64-Zeichen und in UTF-16 16.