Konvertieren Sie Hex in ASCII in Python

Muhammad Waiz Khan 30 Januar 2023
  1. Konvertieren von Hex in Python mit der Methode decode() in ASCII
  2. Konvertieren von Hex in Python mit der Methode codecs.decode() in ASCII
Konvertieren Sie Hex in ASCII in Python

In diesem Tutorial werden verschiedene Methoden zum Konvertieren einer hexadezimalen Zeichenkette in eine ASCII-Zeichenkette in Python erläutert. Angenommen, wir haben eine Zeichenkette in hexadezimaler Form 68656c6c6f geschrieben und möchten sie in eine ASCII-Zeichenkette konvertieren, die hello lautet, da h im ASCII-Code gleich 68 ist und e 64 ist, l ist 6c und o ist 6f.

Wir können eine hexadezimale Zeichenkette in Python mit den folgenden Methoden in eine ASCII-Zeichenkette konvertieren:

Konvertieren von Hex in Python mit der Methode decode() in ASCII

Die Methode string.decode(encoding, error) in Python 2 verwendet eine codierte Zeichenkette als Eingabe und decodiert sie mit dem im Argument encoding angegebenen Codierungsschema. Der Parameter error gibt die Fehlerbehandlungsschemata an, die im Falle eines Fehlers verwendet werden sollen, der strict, ignore und replace sein kann.

Um eine Hex-Zeichenkette in eine ASCII-Zeichenkette zu konvertieren, müssen Sie daher den Parameter encoding der Methode string.decode() auf hex setzen. Der folgende Beispielcode zeigt, wie Sie mit der Methode string.decode() ein Hex in Python 2 in ASCII konvertieren.

string = "68656c6c6f"
string.decode("hex")

Ausgabe:

hello

In Python 3 verwendet die Methode bytearray.decode(encoding, error) ein Byte-Array als Eingabe und dekodiert es mit dem im Argument encoding angegebenen Kodierungsschema.

Um einen String in Python 3 zu dekodieren, müssen wir ihn zuerst in ein Byte-Array konvertieren und dann mit der Methode bytearray.decode() dekodieren. Mit der Methode bytearray.fromhex(string) kann der String zuerst in ein Byte-Array konvertiert werden.

Der folgende Beispielcode zeigt, wie Sie die Methoden bytearray.decode() und bytearray.fromhex(string) verwenden, um eine hexadezimale Zeichenkette in Python 3 in eine ASCII-Zeichenkette zu konvertieren.

string = "68656c6c6f"
byte_array = bytearray.fromhex(string)
byte_array.decode()

Ausgabe:

hello

Konvertieren von Hex in Python mit der Methode codecs.decode() in ASCII

Die Methode codecs.decode(obj, encoding, error) ähnelt der Methode decode(). Es nimmt ein Objekt als Eingabe und decodiert es mit dem im Argument encoding angegebenen Codierungsschema. Das Argument error gibt das Fehlerbehandlungsschema an, das im Fehlerfall verwendet werden soll.

In Python 2 gibt codecs.decode() einen String als Ausgabe zurück und in Python 3 ein Byte-Array. Der folgende Beispielcode zeigt, wie eine Hex-Zeichenkette mit der Methode codecs.decode() in ASCII konvertiert und das zurückgegebene Byte-Array mit der Methode str() in eine Zeichenkette konvertiert wird.

import codecs

string = "68656c6c6f"
binary_str = codecs.decode(string, "hex")
print(str(binary_str, "utf-8"))

Ausgabe:

hello

Verwandter Artikel - Python ASCII

Verwandter Artikel - Python Hex