【发布时间】:2018-01-29 00:38:47
【问题描述】:
我有一个asyncio server,这是TCP Doc 中的一个示例。但是我使用pyzmq 连接到它,当服务器上的阅读器尝试阅读时,我得到一个解码错误。任何提示都非常感谢。我已经尝试过先编码为 utf-8,没有帮助。
服务器:(Python 3.6)
import asyncio
async def handle_echo(reader, writer):
data = await reader.read(100)
print(data)
message = data.decode()
loop = asyncio.get_event_loop()
coro = asyncio.start_server(handle_echo, '127.0.0.1', 5555, loop=loop)
server = loop.run_until_complete(coro)
loop.run_forever()
客户端:(Python 2.7)
import zmq
context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect ("tcp://localhost:%s" % 5555)
socket.send("test")
完整跟踪:
future: <Task finished coro=<handle_echo() done, defined at "E:\Projects\AsyncIOserver.py:3> exception=UnicodeDecodeError('utf-8', b'\xff\x00\x00\x00\x00\x00\x00\x00\x01\x7f', 0, 1, 'invalid start byte')>
Traceback (most recent call last):
File "E:\Projects\AsyncIOserver.py", line 6, in handle_echo
message = data.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
【问题讨论】:
-
哦,不,你是对的......它适用于 'utf-16' 但怎么会呢?顺便说一句,感谢您的快速响应。
-
当我解码
utf-16时,它看起来像垃圾。
标签: python utf-8 python-asyncio pyzmq