Python ZMQ编码

Python ZMQ编码,python,sockets,encode,zeromq,pyzmq,Python,Sockets,Encode,Zeromq,Pyzmq,我目前正在做的项目,需要从PC到设备的通信,到目前为止,我已经决定对插座通信。并编写了一些代码。我还在设备本身上使用用于ipc的ZMQ 我的脚本以文本形式发送数据。我试图将我的数据编码为utf-8,以便它可以在设备上轻松读取,并以帧的形式显示,并根据需要执行任务。然而,我似乎无法使编码正常工作,我尝试在网上搜索示例或教程,但似乎找不到任何示例或教程 我已经尝试使用socket.send(msg.encode(“UTF-8”))对数据进行编码,并使用message=socket.recv()在服务

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

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

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

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

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

请改为打印表达:

print repr(message)

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

哦,我想现在就可以得到它。然而,即使在打印表示时,它仍然显示完全相同的文本,除非我将其编码为十六进制。我不太确定是否可以将接收到的数据按2组打印,而不是将整个十六进制字符串集中在一起。还有其他的编码你会推荐吗?还有,我想知道数据是如何用UTF8编码的?默认情况下是否完成此操作?您发送的是UTF-8字节,因此接收的是UTF-8字节。如果只想查看十六进制,请使用
binascii.hexlify