将字节数组解码为字符串

Decoding Byte Array to String

我正在与 XBEE RF 芯片进行交互,并希望将其传入源地址从字节数组解码为字符串。制造商的软件已经这样做了,但我需要在我自己的自定义程序中处理它。所以

接收地址:b'\x00\x13\xa2\x00Aga\xf8'

地址(厂家解码):00 13 A2 00 41 67 61 F8

我一直在尝试使用 address.decode('utf-8') 对此进行解码,但总是在 \xa2 收到 UnicodeDecodeError 作为无效起始字节。我还需要知道如何将解码版本转换回字节数组,以便将消息发送回网络。

提前致谢

在 Python 3.5 及更高版本中,bytes(以及其他一些类似 bytes 的类型)具有 a hex method,因此您可以这样做:

b'\x00\x13\xa2\x00Aga\xf8'.hex()

获得:

'0013a200416761f8'

如果大小写很重要,您可以对结果调用 .upper()

在 3.4 及更早版本上,import binascii,然后使用 the hexlify function:

binascii.hexlify(b'\x00\x13\xa2\x00Aga\xf8')

得到相同的结果。