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

2022-07-06 11:16:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

在Python2中,我曾经能够接收数据并将其附加到字符串中,但现在在Python3中,我接收的是字节数组,如何将其转换为字符串?你知道吗


解码('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,只需读取二进制文件的内容并将其发送回客户端,以上就是客户端代码。你知道吗


Tags: 数据字符串代码服务器客户端string字节二进制socket解码replyutf服务器发送chunkpython2