python 3 编码问题详解
在 python 3 中解决编码问题时,需要格外注意 bytes 和 str 对象。
问题中提到的报错信息 "typeerror: a bytes-like object is required, not 'str'" 的意思是,需要传递一个字节对象,而不是字符串对象。即使 data 已经是 bytes 类型,但 ctime() 编码后的结果仍然是字符串,导致了这个错误。
为了解决这个问题,需要将 ctime() 编码的结果也转换为 bytes 类型。完整代码如下:
立即学习“Python免费学习笔记(深入)”;
# 服务器 from socket import * from time import ctime HOST = '' PORT = 21507 BUFSIZE = 1024 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) tcpSerSock.bind(ADDR) tcpSerSock.listen(5) while True: print('waiting for connection...') tcpCliSock, addr = tcpSerSock.accept() print('...connected from:', addr) while True: data = tcpCliSock.recv(BUFSIZE) if not data: break print(type(data)) tcpCliSock.send(('[{}] {}'.format(ctime().encode('utf-8'), data.decode()).encode())) tcpCliSock.close()
登录后复制
通过将 ctime() 编码后的结果转换为 bytes 类型,我们解决了编码问题,服务器可以正确地接收和发送数据。
以上就是Python 3 中如何解决 "TypeError: a bytes-like object is required, not 'str'" 编码错误?的详细内容,更多请关注抖狐科技其它相关文章!
-
英雄联盟丽桑卓带什么符文
丽桑卓的基石符文选择电刑,丽桑卓因为自身的技能不是很远的缘故,在释放技能的时候和电敌方英雄都会靠近点比较近,这样敌方就有机会攻击到我们。同理这时候丽桑卓的普通攻击和其他技能也能更容易的命中敌方英雄,这...
-
2024年09月17日Atom币价格_Atom币今日最新价格
(24小时Atom币价格走势) cosmos(atom)近期价格走势 当前价格:4.0571 美元 24 小时交易量:8056 万美元 市值:15.86 亿美元 价格波动概述 在过去 24 小时内,A...
-
Java方法的访问权限和作用域
Java 方法的访问权限和作用域 在 Java 中,方法的访问权限和作用域是重要概念,它们控制对方法的可访问性和可见性。 访问权限 访问权限指定可以访问方法的代码范围。Java 中有四种访问权限级别:...
-
怎么把爱奇艺下载好的视频放入PPT中
将爱奇艺视频插入 ppt 的步骤:1. 将视频转换为 ppt 格式(mp4 或 wmv);2. 在 ppt 中插入视频;3. 调整视频大小和位置;4. 设置视频播放选项(开始方式、修剪、音频、循环);...
-
支付宝怎么取消芒果TV会员自动续费
如何取消支付宝芒果tv会员自动续费?步骤:打开支付宝点击“我的”点击“全部服务”在“会员中心”中找到“芒果tv会员”点击“管理”点击“到期时间”下方的“自动续费”开关将开关切换到“关闭”状态支付宝取消...