Convertir Hex en ASCII en Python

Muhammad Waiz Khan 30 janvier 2023
  1. Convertir Hex en ASCII en Python en utilisant la méthode decode()
  2. Convertir Hex en ASCII en Python en utilisant la méthode codecs.decode()
Convertir Hex en ASCII en Python

Ce tutoriel examinera différentes méthodes pour convertir une chaîne hexadécimale en chaîne ASCII en Python. Supposons que nous ayons une chaîne écrite sous forme hexadécimale 68656c6c6f et que nous voulions la convertir en une chaîne de caractères ASCII qui sera hello car h est égal à 68 en code ASCII, e est 64, l est 6c et o est 6f.

Nous pouvons convertir une chaîne hexadécimale en chaîne ASCII en Python en utilisant les méthodes suivantes:

Convertir Hex en ASCII en Python en utilisant la méthode decode()

La méthode string.decode(encoding, error) de Python 2 prend une chaîne encodée en entrée et la décode en utilisant le schéma d’encodage spécifié dans l’argument encoding. Le paramètre error spécifie les schémas de gestion des erreurs à utiliser en cas d’erreur qui peut être strict, ignore, et replace.

Par conséquent, pour convertir une chaîne hexadécimale en chaîne ASCII, nous devons définir le paramètre encoding de la méthode string.decode() sur hex. L’exemple de code ci-dessous montre comment utiliser la méthode string.decode() pour convertir un hex en ASCII dans Python 2.

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

Production:

hello

En Python 3, la méthode bytearray.decode(encoding, error) prend un tableau d’octets en entrée et le décode en utilisant le schéma d’encodage spécifié dans l’argument encoding.

Pour décoder une chaîne en Python 3, il faut d’abord convertir la chaîne en un tableau d’octets puis utiliser la méthode bytearray.decode() pour la décoder. La méthode bytearray.fromhex(string) peut être utilisée pour convertir d’abord la chaîne en un tableau d’octets.

L’exemple de code ci-dessous montre comment utiliser les méthodes bytearray.decode() et bytearray.fromhex(string) pour convertir une chaîne hexadécimale en chaîne ASCII dans Python 3:

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

Production:

hello

Convertir Hex en ASCII en Python en utilisant la méthode codecs.decode()

La méthode codecs.decode(obj, encoding, error) est similaire à la méthode decode(). Il prend un objet en entrée et le décode en utilisant le schéma d’encodage spécifié dans l’argument encoding. L’argument error spécifie le schéma de gestion des erreurs à utiliser en cas d’erreur.

En Python 2, le codecs.decode() renvoie une chaîne en sortie, et en Python 3, il renvoie un tableau d’octets. L’exemple de code ci-dessous montre comment convertir une chaîne hexadécimale en ASCII en utilisant la méthode codecs.decode() et convertir le tableau d’octets retourné en chaîne en utilisant la méthode str().

import codecs

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

Production:

hello

Article connexe - Python ASCII

Article connexe - Python Hex