将字节数组解码为字符串

时间:2018-01-17 00:36:12

标签: python utf-8 hex xbee

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

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

地址(由制造商解码):00 13 A2 00 41 67 61 F8

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

提前致谢

1 个答案:

答案 0 :(得分:2)

在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')

得到相同的结果。