我有一个套接字接收服务器发送的一些二进制数据,该服务器是用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,它只是读取二进制文件的内容,然后将其发送回客户端,上面是客户端代码。
答案 0 :(得分:0)
好吧,假设字符串为UTF-8,就这么简单:
try:
binary_data.decode('utf-8', errors='strict')
except UnicodeError as e:
# Handle the error here
此代码应捕获出现的任何错误,您可以从那里进行处理。