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