摘要:是實現的客戶端。問題當接收到中文消息時出現下方錯誤,簡單說就是編碼問題。
問題socketIO-client是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)
找到socketIO_client的安裝路徑,例中跟six.py在同一目錄下,路徑是/usr/local/lib/python3.5/site-packages/socketIO_client/.
找到socketIO_client文件夾下的transports.py文件
用編輯器打開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
修改倒數第二行six.b(packet_text))為six.u(packet_text)),修改后保存.
再次運行代碼接收中文消息,代碼正常運行.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37982.html
摘要:在標準沒有推出之前,輪詢是唯一可行的方式通過瀏覽器也可以,但這里不做討論。這種方式存在延時且對服務端造成很大負載。直到年,才標準化一種基于套接字進行收發數據的協議。現如今主流瀏覽器均已支持。 socket.io提供了基于事件的實時雙向通訊 歷史 Web端與服務器間的實時數據傳輸的是一個很重要的需求,但最早只能通過AJAX輪詢詢實現。在WebSocket標準沒有推出之前,AJAX輪詢是唯...
摘要:在控制臺執行命令中文,可以將解釋為命令,中文,從而到到對象。中文以上的對象其實是,即字節碼,若終端是編碼的話,那么就是用的字節碼。那么這里的是什么呢默認是,這正是錯誤為什么報無法用解碼的原因中文將默認編碼改為,即可。 問題 在平時工作中,遇到了這樣的錯誤: UnicodeDecodeError: ascii codec cant decode byte 想必大家也都碰到過,很常見 。于...
摘要:使用中文替代中文中文編碼中文編碼中有以上兩種聲明字符串變量的方式,它們的主要區別是編碼格式的不同,其中,的編碼格式和文件聲明的編碼格式一致,而的編碼格式則是。 字符串是Python中最常用的數據類型,而且很多時候你會用到一些不屬于標準ASCII字符集的字符,這時候代碼就很可能拋出UnicodeDecodeError: ascii codec cant decode byte 0xc4 ...
閱讀 2779·2023-04-26 01:47
閱讀 3591·2023-04-25 23:45
閱讀 2461·2021-10-13 09:39
閱讀 606·2021-10-09 09:44
閱讀 1789·2021-09-22 15:59
閱讀 2761·2021-09-13 10:33
閱讀 1706·2021-09-03 10:30
閱讀 656·2019-08-30 15:53