【问题标题】:Encoding for ZMQZMQ 编码
【发布时间】:2013-08-04 08:29:48
【问题描述】:

我目前正在做需要从 PC 到设备进行通信的项目,到目前为止我已经决定使用套接字通信。并写了一些代码。我还在设备本身上将 ZMQ 用于 ipc。

我的脚本通过以文本形式发送数据来工作。我试图将我的数据编码为 utf-8,以便它可以在设备上轻松读取并显示在框架中并根据需要执行任务。但是,我似乎无法正确编码,我尝试在网上搜索示例或教程,但似乎找不到任何内容。

我尝试使用 socket.send (msg.encode("UTF-8")) 对我的数据进行编码,并使用 message = socket.recv() 在服务器上接收和打印数据。这可行,但服务器会打印出我不想要的确切文本数据。我不确定这是否是正确的方法,并希望有人能指出我正确的方向来编码和打印编码数据而不解码回文本。

【问题讨论】:

    标签: python sockets encode zeromq pyzmq


    【解决方案1】:

    正在接收作为编码 UTF8 数据的文本。一切正常。

    但是,如果您将接收端的数据直接打印到恰好配置为显示 UTF-8 的终端,您不会看到任何差异。

    改为打印表示:

    print repr(message)
    

    查看字符串文字表示,包括显示为转义字符串的任何不可打印的非 ASCII 字节。

    【讨论】:

    • 哦,我想现在明白了。但是,即使我打印表示形式,它仍然显示完全相同的文本,除非我将其编码为十六进制。我不太确定是否以 2 个一组的形式打印接收到的数据,而不是将整个十六进制字符串集中在一起。您还有其他推荐的编码吗?
    • 另外,想知道数据是如何以 UTF8 编码的?这是默认完成的吗?
    • 您发送的是 UTF-8 字节,因此接收的是 UTF-8 字节。如果您只想查看十六进制,请使用 binascii.hexlify
    猜你喜欢
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多