如何在python 3中将二进制字节转换为字符串?

时间:2019-01-17 20:15:20

标签: python python-3.x binary

我有一个套接字接收服务器发送的一些二进制数据,该服务器是用C ++编写的。它会发送二进制数据,例如:0x10、0x20、0x18、0xAA等。

在python 2中,我曾经能够接收数据并将其附加到字符串中,但是现在在python 3中,我接收到的是字节数组,如何将其转换为字符串?


decode('utf-8')似乎不起作用,这是我的原始代码:

reply_string = "" while bytes_read < reply_length:
    chunk = s.recv(4096)
    reply_string += chunk.decode('utf-8')

s是一个套接字,我得到的错误是:

UnicodeDecodeError:“ utf-8”编解码器无法解码位置116的字节0xf7:无效的起始字节

服务器是用C ++编写的,它不发送unicode,它只是读取二进制文件的内容,然后将其发送回客户端,上面是客户端代码。

1 个答案:

答案 0 :(得分:0)

好吧,假设字符串为UTF-8,就这么简单:

try:
    binary_data.decode('utf-8', errors='strict')
except UnicodeError as e:
    # Handle the error here

此代码应捕获出现的任何错误,您可以从那里进行处理。