python - Zeromq:不允许使用 unicode,请使用 send_unicode

标签 python sockets unicode utf-8 zeromq

通过路由器套接字发送字符串时,我在 Zeromq python 上遇到错误。字符串类型消息已成功接收,但有时,unicode消息会抛出异常 "Type Error: unicode not allowed. use send_unicode". 虽然我一直在尝试使用 msg.encode('utf-8' )。但我想不出办法克服它。 我使用的是 python 2.7.3。我没有使用 pyzmq (仅导入 zmq)。期待您的建议:) 谢谢

如果后端位于套接字中:

        request=backend.recv_multipart()
        #print ("Backend Thread is ready")
        worker_id,client_id = request[:2]

        if client_id != b"READY" and len(request) > 3:
            #print (len(request))
            empty2,reply  = request[2:]
            router_socket.send_multipart([client_id, reply.encode('utf-8')])

最佳答案

我遇到了同样的错误。我的错误代码是:

socket.send("服务器向client3发送消息")

您必须将消息转换为字节才能解决该问题。为此,只需添加 b,如下所示:

socket.send(b"服务器消息到client3")

Is it better to convert strings to byte, then bytes to strings when data sent through network, and why?

关于python - Zeromq:不允许使用 unicode,请使用 send_unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29009583/

相关文章:

python - Python线程

Python Sklearn 逻辑回归模型拟合不正确

sockets - Android Socket : java.net.SocketException: 没有到主机的路由

c - 设置接受套接字的缓冲区大小

c++ - 如何从excel中获取unicode字符串

python - 使用 cmap 在 opencv 中保存 16 位图像(cv::ColorMap 仅支持函数 'operator()' 中 CV_8UC1 或 CV_8UC3 类型的源图像)

python - 在 RHEL 中使用 Ansible 安装 Django 失败

python - asyncore 套接字未正确关闭

php - 使用 Doctrine2 和 Symfony2 将 unicode 数据插入 Oracle 数据库

python - 由于 unicode 导致 u 导致 Doctest 失败