当我试图解码从客户端发送的字符串时,我收到错误消息"'utf-8‘编解码器无法解码字节0xff“(使用Python3)。
错误:
接收的数据:B‘’STORE 2018_07_26:09_33_15.jpg\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01.....
UnicodeDecodeError:'utf-8‘编解码器无法解码位置38中的字节0xff :无效的起始字节
代码:(用户为普通字符串)
#Server
data = conn.recv(1024)
data = data.decode("utf8").rstrip()
#Client
message = 'STORE ' + USER + ' ' + file
message = message.encode('utf-8')
s.send(message)
发布于 2018-08-01 07:03:43
问题出现在后来的代码中。conn.recv (1024)
在接收到字符串时,"recv“没有通过前端,并接收不需要的信息。
我解决了在收到确认字符串后向客户端发送确认字符串的问题。
发布于 2018-07-26 16:34:49
在UTF-8中使用0xff
是非法的,参见here,你必须在解码之前过滤掉它。您可以使用以下代码:
data1 = data.decode("utf-8", errors="replace")
更新:您正在尝试将Jpg文件解码为UTF-8格式,但该格式不起作用。
https://stackoverflow.com/questions/51534340
复制相似问题