So wandeln Sie Text in Hex um
- Tippen oder fügen Sie den Text in Eingabe · Text ein. Das Hex erscheint beim Tippen in Ausgabe · Hex.
- Unter der Eingabe bestimmt Zeichensatz, wie Zeichen zu Bytes werden. Lassen Sie UTF-8 eingestellt, es sei denn, das empfangende System erwartet etwas anderes.
- Unter der Ausgabe wählen Sie Schreibweise (kleinbuchstaben oder GROSSBUCHSTABEN), Trennzeichen (keins, Leerzeichen,
:,0xoder\x) und Bytes pro Zeile (keine, 16 oder 32). - Ausgabe kopieren oder Herunterladen. Der Umschalter Hex → Text macht daraus wieder Text, ebenso Hex in Text.
Ausgabestile
Die Optionen für Trennzeichen und Schreibweise decken die üblichen Stellen ab, an denen Hex eingefügt wird. Für den Text Hi!:
| Einstellungen | Ausgabe | Wofür |
|---|---|---|
| keins, kleinbuchstaben | 486921 | Hashes, URLs, JSON |
| Leerzeichen, GROSSBUCHSTABEN | 48 69 21 | Hex-Editoren, Protokolldokumentation |
: | 48:69:21 | Fingerabdrücke, Listen im MAC-Stil |
0x | 0x48 0x69 0x21 | C- und Assembler-Quelltext |
\x | \x48\x69\x21 | String-Escapes in C, Python, Bash-printf |
Die Form \x passt direkt in ein String-Literal: printf '\x48\x69\x21' gibt in Bash Hi! aus. Bytes pro Zeile teilt lange Ausgaben in Zeilen zu 16 oder 32 Bytes, damit Sie Offsets mit bloßem Auge abzählen können.
Ein Zeichen, ein oder mehrere Bytes
ASCII-Zeichen belegen je ein Byte, und UTF-8 lässt sie unverändert, für englischen Text liefern beide Zeichensätze also dasselbe Hex. Alles andere hängt vom Zeichensatz ab:
| Text | UTF-8 | ISO-8859-1 | UTF-16LE |
|---|---|---|---|
A | 41 | 41 | 41 00 |
é | c3 a9 | e9 | e9 00 |
€ | e2 82 ac | nicht verfügbar | ac 20 |
👋 | f0 9f 91 8b | nicht verfügbar | 3d d8 4b dc |
Zeichen, die ein Zeichensatz nicht darstellen kann, werden durch ? ersetzt, und die Statuszeile nennt, wie viele ersetzt wurden. Passt Hex aus einem anderen System nicht zu Ihrem, prüfen Sie zuerst den Zeichensatz auf beiden Seiten.
Unsichtbare Zeichen finden
Die Umwandlung in Hex ist der schnellste Weg, Zeichen zu sehen, die auf dem Bildschirm nach nichts aussehen. Zwei Strings, die identisch angezeigt werden, können sich in ihren Bytes unterscheiden:
| Hex in UTF-8 | Zeichen |
|---|---|
20 | normales Leerzeichen |
c2 a0 | geschütztes Leerzeichen, häufig in Text, der aus Webseiten und Word kopiert wurde |
e2 80 8b | Leerzeichen mit Nullbreite |
ef bb bf | Byte-Order-Mark am Dateianfang |
0d 0a | Windows-Zeilenumbruch (unter Linux und macOS nur 0a) |
Ist ein Passwort, ein API-Schlüssel oder ein Konfigurationswert „richtig, wird aber abgelehnt“, fügen Sie ihn hier mit Trennzeichen auf Leerzeichen ein und suchen Sie nach einem dieser Bytes. Dieselbe Prüfung hilft, bevor Sie Text mit Text in Base64 kodieren: Base64 behält jedes unsichtbare Byte, es landet also auch im kodierten Wert.
Text in Hex im Code
"Hi!".encode("utf-8").hex() # '486921'
"Hi!".encode("utf-8").hex(" ") # '48 69 21' (separator argument, Python 3.8+)
"é".encode("latin-1").hex() # 'e9'
const hex = Array.from(new TextEncoder().encode("café"),
b => b.toString(16).padStart(2, "0")).join(" ");
// '63 61 66 c3 a9'
TextEncoder erzeugt immer UTF-8. Die Seiten JavaScript und Python zeigen die passenden Base64-Aufrufe.
Häufige Fragen
Wie wandle ich einen String in Hex um?
Fügen Sie den String in die Eingabe ein. Jedes Zeichen wird zu seinen Bytewerten im gewählten Zeichensatz, zwei Hex-Ziffern pro Byte. In Python geht dasselbe mit "Hello".encode("utf-8").hex().
Was ist „Hello“ in Hex?
48 65 6c 6c 6f in ASCII und UTF-8, die bei einfachen englischen Buchstaben übereinstimmen. In UTF-16LE ist es 48 00 65 00 6c 00 6c 00 6f 00.
Warum wird é zu zwei Bytes, c3 a9?
UTF-8 kodiert jedes Zeichen oberhalb von U+007F mit zwei bis vier Bytes. Stellen Sie Zeichensatz auf ISO-8859-1 (Latin-1) oder Windows-1252, wenn Sie das einzelne Byte e9 brauchen.
Wie bekomme ich Hex mit 0x vor jedem Byte?
Stellen Sie Trennzeichen auf 0x. Die Ausgabe lautet dann 0x48 0x65 0x6c 0x6c 0x6f. Für ein vollständiges Array-Literal in C oder Rust schreibt Base64 in Byte-Array auch die Deklaration.