成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

socket.io的 Python客戶端中文encode問(wèn)題

jsyzchen / 3127人閱讀

摘要:是實(shí)現(xiàn)的客戶端。問(wèn)題當(dāng)接收到中文消息時(shí)出現(xiàn)下方錯(cuò)誤,簡(jiǎn)單說(shuō)就是編碼問(wèn)題。

socketIO-client是python實(shí)現(xiàn)的SocketIO客戶端。

問(wèn)題

當(dāng)接收到中文消息時(shí)出現(xiàn)下方錯(cuò)誤,簡(jiǎn)單說(shuō)就是編碼問(wèn)題。

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函數(shù)

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

修改倒數(shù)第二行six.b(packet_text))six.u(packet_text)),修改后保存.

再次運(yùn)行代碼接收中文消息,代碼正常運(yùn)行.

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/37982.html

相關(guān)文章

  • socket.io之一: 介紹

    摘要:在標(biāo)準(zhǔn)沒(méi)有推出之前,輪詢是唯一可行的方式通過(guò)瀏覽器也可以,但這里不做討論。這種方式存在延時(shí)且對(duì)服務(wù)端造成很大負(fù)載。直到年,才標(biāo)準(zhǔn)化一種基于套接字進(jìn)行收發(fā)數(shù)據(jù)的協(xié)議。現(xiàn)如今主流瀏覽器均已支持。 socket.io提供了基于事件的實(shí)時(shí)雙向通訊 歷史 Web端與服務(wù)器間的實(shí)時(shí)數(shù)據(jù)傳輸?shù)氖且粋€(gè)很重要的需求,但最早只能通過(guò)AJAX輪詢?cè)儗?shí)現(xiàn)。在WebSocket標(biāo)準(zhǔn)沒(méi)有推出之前,AJAX輪詢是唯...

    william 評(píng)論0 收藏0
  • python編碼問(wèn)題

    摘要:在控制臺(tái)執(zhí)行命令中文,可以將解釋為命令,中文,從而到到對(duì)象。中文以上的對(duì)象其實(shí)是,即字節(jié)碼,若終端是編碼的話,那么就是用的字節(jié)碼。那么這里的是什么呢默認(rèn)是,這正是錯(cuò)誤為什么報(bào)無(wú)法用解碼的原因中文將默認(rèn)編碼改為,即可。 問(wèn)題 在平時(shí)工作中,遇到了這樣的錯(cuò)誤: UnicodeDecodeError: ascii codec cant decode byte 想必大家也都碰到過(guò),很常見 。于...

    forsigner 評(píng)論0 收藏0
  • Python中文編碼問(wèn)題

    摘要:使用中文替代中文中文編碼中文編碼中有以上兩種聲明字符串變量的方式,它們的主要區(qū)別是編碼格式的不同,其中,的編碼格式和文件聲明的編碼格式一致,而的編碼格式則是。 字符串是Python中最常用的數(shù)據(jù)類型,而且很多時(shí)候你會(huì)用到一些不屬于標(biāo)準(zhǔn)ASCII字符集的字符,這時(shí)候代碼就很可能拋出UnicodeDecodeError: ascii codec cant decode byte 0xc4 ...

    Cheriselalala 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<