【发布时间】:2021-05-30 23:12:01
【问题描述】:
你好,所以我一直在做 Python 套接字编程。我想要做的是向服务器发送一个名为“option”的字符串变量。
这是客户端代码
option = "4"
client.send(option.encode())
我收到“错误 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte”。
这是我的服务器代码。
option = client.recv(512).decode()
服务器中的选项应该收到一个值为“4”的字符串,但就像我说的那样,我得到了一个错误。 谁能知道如何解决这个问题?提前致谢。
【问题讨论】:
-
您可以尝试通过添加
'utf-8'参数来明确您的encode和decode调用。然后在recv之后检查len(option)。 -
我已经尝试添加
utf-8,但它不起作用。 -
@oatty8867 - 您是否在客户端和服务器中都添加了显式编码?
-
0xff是 Microsoft UTF-16(有时是 UTF-8)编码的 BOM 的开始。您可以在客户端和服务器中调用locale.getpreferredencoding()来查看它们当前正在使用什么。 -
怎么做。我是新手。