微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用UnicodeDecodeError解决此问题?

如何解决如何使用UnicodeDecodeError解决此问题?

我有以下代码尝试使用pyzmq将预测结果从一台计算机发送到另一台计算机。


查看器:

context = zmq.Context()
footage_socket = context.socket(zmq.SUB)
footage_socket.bind('tcp://*:5555')
footage_socket.setsockopt_string(zmq.SUBSCRIBE,np.unicode(''))

while True:
    frame = footage_socket.recv_string()
    img = base64.b64decode( frame )
    predictions = m1.predict(img)
    print(predictions)

footage_socket.close()

Streamer:

context = zmq.Context()
footage_socket = context.socket(zmq.PUB)
footage_socket.connect('tcp://localhost:5555')
videoFile = "D:/testing.mp4"
camera = cv2.VideoCapture(videoFile)
count = 0

while True:
    grabbed,frame = camera.read()
    count += 1
    print (count)

    try:
        frame = cv2.resize( frame,(224,224) )

    except cv2.error:
        break

    image= img_to_array(frame)
    image=image.reshape( ( 1,image.shape[0],image.shape[1],image.shape[2]
                           )
                         )
    image=preprocess_input(image)
    preds=model.predict(image)
    footage_socket.send(preds)
footage_socket.close()

我在下面收到此错误

frame = footage_socket.recv_string()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc6 in position 4:
invalid continuation byte

非常感谢您的帮助。

解决方法

您正在发送二进制数据,但是尝试使用recv_string()将其作为Unicode字符串读取。

您需要使用footage_socket.recv()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。