发生此错误的原因是,在Python 3中,字符串是Unipre,但是在网络上传输时,数据需要改为字节。所以…一些建议:
- 建议使用
c.sendall()
而不是,c.send()
以防止可能没有通过一个呼叫发送整个msg的问题(请参阅docs)。 - 对于文字,添加
'b'
for字节字符串:c.sendall(b'Thank you for connecting')
- 对于变量,您需要将Unipre字符串编码为字节字符串(请参见下文)
最佳解决方案(应同时使用2.x和3.x):
output = 'Thank you for connecting'c.sendall(output.enpre('utf-8'))
结束语/背景知识 :这在Python 2中不是问题,因为字符串已经是字节字符串了-
您的OP代码将在该环境中完美运行。Unipre字符串已在1.6和2.0版本中添加到Python中,但在它们成为默认字符串类型之前一直落后到3.0。也看到这个类似的问题,以及这一个。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)