Converter Hex em ASCII em Python
-
Converter Hex em ASCII em Python usando o método
decode()
-
Converter Hex em ASCII em Python usando o método
codecs.decode()
Este tutorial examinará vários métodos para converter uma string hexadecimal em uma string ASCII em Python. Suponha que temos uma string escrita na forma hexadecimal 68656c6c6f
e queremos convertê-la em uma string de caracteres ASCII que será hello
, pois h
é igual a 68
no código ASCII, e
é 64
, l
é 6c
e o
é 6f
.
Podemos converter uma string hexadecimal em uma string ASCII em Python usando os seguintes métodos:
Converter Hex em ASCII em Python usando o método decode()
O método string.decode(encoding, error)
no Python 2 pega uma string codificada como entrada e a decodifica usando o esquema de codificação especificado no argumento encoding
. O parâmetro error
especifica os esquemas de tratamento de erros a serem usados no caso de um erro que pode ser strict
, ignore
e replace
.
Portanto, para converter uma string hex em uma string ASCII, precisamos definir o parâmetro encoding
do método string.decode()
como hex
. O código de exemplo a seguir demonstra como usar o método string.decode()
para converter um hexadecimal em ASCII no Python 2.
string = "68656c6c6f"
string.decode("hex")
Resultado:
hello
No Python 3, o método bytearray.decode(encoding, error)
pega um array de bytes como entrada e o decodifica usando o esquema de codificação especificado no argumento encoding
.
Para decodificar uma string em Python 3, primeiro precisamos converter a string em um array de bytes e então usar o método bytearray.decode()
para decodificá-la. O método bytearray.fromhex(string)
pode ser usado para converter a string em un array de bytes primeiro.
O código de exemplo a seguir demonstra como usar os métodos bytearray.decode()
e bytearray.fromhex(string)
para converter uma string hexadecimal em string ASCII no Python 3:
string = "68656c6c6f"
byte_array = bytearray.fromhex(string)
byte_array.decode()
Resultado:
hello
Converter Hex em ASCII em Python usando o método codecs.decode()
O método codecs.decode(obj, encoding, error)
é semelhante ao método decode()
. Ele pega um objeto como entrada e o decodifica usando o esquema de codificação especificado no argumento encoding
. O argumento error
especifica o esquema de tratamento de erros a ser usado em caso de erro.
No Python 2, o codecs.decode()
retorna uma string como saída, e no Python 3, ele retorna un array de bytes. O código de exemplo a seguir demonstra como converter uma string hexadecimal em ASCII usando o método codecs.decode()
e converter a matriz de bytes retornada em string usando o método str()
.
import codecs
string = "68656c6c6f"
binary_str = codecs.decode(string, "hex")
print(str(binary_str, "utf-8"))
Resultado:
hello
Artigo relacionado - Python ASCII
- Converter Int para ASCII em Python
- Converter string em valor ASCII em Python
- Obtenha o valor ASCII de um caractere em Python