博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
socket.io的 Python客户端中文encode问题
阅读量:6303 次
发布时间:2019-06-22

本文共 1661 字,大约阅读时间需要 5 分钟。

是python实现的SocketIO客户端。

问题

当接收到中文消息时出现下方错误,简单说就是编码问题。

Traceback (most recent call last):  File "sub.py", line 24, in 
socketIO.wait() File "/usr/local/lib/python3.5/site-packages/socketIO_client/__init__.py", line 232, in wait self._process_packets() File "/usr/local/lib/python3.5/site-packages/socketIO_client/__init__.py", line 254, in _process_packets for engineIO_packet in self._transport.recv_packet(): File "/usr/local/lib/python3.5/site-packages/socketIO_client/transports.py", line 155, in recv_packet six.b(packet_text)) File "/usr/local/lib/python3.5/site-packages/six.py", line 620, in b return s.encode("latin-1")UnicodeEncodeError: 'latin-1' codec can't encode characters in position 21-27: ordinal not in range(256)

解决方法

  1. 找到socketIO_client的安装路径,例中跟six.py在同一目录下,路径是/usr/local/lib/python3.5/site-packages/socketIO_client/.

  2. 找到socketIO_client文件夹下的transports.py文件

  3. 用编辑器打开transports.py,在144行左右的位置找到recv_packet函数

    def recv_packet(self):    try:        packet_text = self._connection.recv()    except websocket.WebSocketTimeoutException as e:        raise TimeoutError('recv timed out (%s)' % e)    except websocket.SSLError as e:        raise ConnectionError('recv disconnected by SSL (%s)' % e)    except websocket.WebSocketConnectionClosedException as e:        raise ConnectionError('recv disconnected (%s)' % e)    except socket.error as e:        raise ConnectionError('recv disconnected (%s)' % e)    engineIO_packet_type, engineIO_packet_data = parse_packet_text(        six.b(packet_text))    yield engineIO_packet_type, engineIO_packet_data
  4. 修改倒数第二行six.b(packet_text))six.u(packet_text)),修改后保存.

  5. 再次运行代码接收中文消息,代码正常运行.

转载地址:http://jzbxa.baihongyu.com/

你可能感兴趣的文章
HTML5基础(二)
查看>>
在GCE上安装Apache、tomcat等
查看>>
在Mac 系统下进行文件的显示和隐藏
查看>>
ue4(c++) 按钮中的文字居中的问题
查看>>
技能点
查看>>
读书笔记《乌合之众》
查看>>
Hadoop日记Day1---Hadoop介绍
查看>>
iOS 学习资料汇总
查看>>
centos7 yum安装jdk
查看>>
Bluedroid与BluZ,蓝牙测试方法的变动(基于bludroid和BlueZ的对比)
查看>>
接口和抽象类有什么区别
查看>>
Linux 下添加用户,修改权限
查看>>
请问view controller scene,该如何删除
查看>>
bootstrap新闻模块样式模板
查看>>
zzzzw_在线考试系统①准备篇
查看>>
App Store 审核被拒的23个理由
查看>>
剑指offer第二版-1.赋值运算符函数
查看>>
javascript 对象
查看>>
Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习
查看>>
Echart:前端很好的数据图表展现工具+demo
查看>>