Converti Hex in ASCII in Python
-
Converti Hex in ASCII in Python usando il metodo
decode()
-
Converti Hex in ASCII in Python usando il metodo
codecs.decode()
Questo tutorial esaminerà vari metodi per convertire una stringa esadecimale in una stringa ASCII in Python. Supponiamo di avere una stringa scritta in forma esadecimale 68656c6c6f
e di volerla convertire in una stringa di caratteri ASCII che sarà hello
poiché h
è uguale a 68
in codice ASCII, e
è 64
, l
è 6c
e o
è 6f
.
Possiamo convertire una stringa esadecimale in una stringa ASCII in Python utilizzando i seguenti metodi:
Converti Hex in ASCII in Python usando il metodo decode()
Il metodo string.decode(encoding, error)
in Python 2 prende una stringa codificata come input e la decodifica usando lo schema di codifica specificato nell’argomento encoding
. Il parametro error
specifica gli schemi di gestione degli errori da usare in caso di un errore che può essere strict
, ignore
e replace
.
Pertanto, per convertire una stringa esadecimale in una stringa ASCII, dobbiamo impostare il parametro encoding
del metodo string.decode()
come hex
. Il codice di esempio sotto mostra come utilizzare il metodo string.decode()
per convertire un esadecimale in ASCII in Python 2.
string = "68656c6c6f"
string.decode("hex")
Produzione:
hello
In Python 3, il metodo bytearray.decode(encoding, error)
accetta un array di byte come input e lo decodifica usando lo schema di codifica specificato nell’argomento encoding
.
Per decodificare una stringa in Python 3, dobbiamo prima convertire la stringa in un array di byte e poi utilizzare il metodo bytearray.decode()
per decodificarla. Il metodo bytearray.fromhex(string)
può essere usato per convertire prima la stringa in un array di byte.
Il codice di esempio seguente mostra come utilizzare il metodo bytearray.decode()
e bytearray.fromhex(string)
per convertire una stringa esadecimale in una stringa ASCII in Python 3:
string = "68656c6c6f"
byte_array = bytearray.fromhex(string)
byte_array.decode()
Produzione:
hello
Converti Hex in ASCII in Python usando il metodo codecs.decode()
Il metodo codecs.decode(obj, encoding, error)
è simile al metodo decode()
. Prende un oggetto come input e lo decodifica utilizzando lo schema di codifica specificato nell’argomento encoding
. L’argomento error
specifica lo schema di gestione degli errori da utilizzare in caso di errore.
In Python 2, codecs.decode()
restituisce una stringa come output, e in Python 3, restituisce un array di byte. Il codice di esempio sotto mostra come convertire una stringa esadecimale in ASCII usando il metodo codecs.decode()
e convertire l’array di byte restituito in stringa usando il metodo str()
.
import codecs
string = "68656c6c6f"
binary_str = codecs.decode(string, "hex")
print(str(binary_str, "utf-8"))
Produzione:
hello
Articolo correlato - Python ASCII
- Converti Int in ASCII in Python
- Converti stringa in valore ASCII in Python
- Ottieni il valore ASCII di un carattere in Python