кодировка сообщений python qpid

Я пытаюсь получать сообщения от брокера amqp в python. Вот мой код:

#!/usr/bin/python

import sys
import os
import getopt
from qpid.messaging import *
from qpid.log import enable, DEBUG

broker_rcv = "admin/admin@hostname:IP"
address_rcv = "broadcast.QUEUE_NAME.QUEUE_NAME"  + "; { node: { type: queue }, assert: never , create: never, mode: " + "browse" + " }"

connection_rcv = Connection(broker_rcv)
connection_rcv.open()
session_rcv = connection_rcv.session()
receiver = session_rcv.receiver(address_rcv)

msg = receiver.fetch(timeout=None)
print msg.content

Но когда я пытаюсь распечатать сообщения, я вижу их в странной кодировке, и нет возможности изменить кодировку сообщений.

Что я делаю неправильно?


person user1209304    schedule 14.02.2012    source источник
comment
Опубликуйте некоторые из странно закодированных строк.   -  person Blender    schedule 14.02.2012
comment
AEDEXCHAEDAEDN0 :ДИРХАМЫ ОАЭ @H R EURAED XLâ H ANGEXCHANGANGN0 : НИДЕРЛАНДЫ @H R EURANG XLâ H AUDEXCHAUDAUDN0 : АВСТРАЛЬНЫЙ ДОЛЛАР@H R EURAUD XLâ H AZNEXCHAZNAZNN0 :АЗЕРБАЙДЖАН @H R   -  person user1209304    schedule 14.02.2012
comment
Если я удалю печать и оставлю только msg.content, я получу следующее сообщение: x0b\x18\x0c0\x00:\x06\x08\x0e\x10\x13\x18\x0e\x12L\x8a\xe2\tH\n\x03AED\x12\x04EXCH\x1a\x03AED\   -  person user1209304    schedule 14.02.2012


Ответы (2)


msg.content содержит исходное содержимое сообщения, отправленное некоторым производителем. Вы не можете изменить это. И что такое кодировка, которую вы упомянули выше? Если вы видели это при печати сообщения, просто игнорируйте его.

person Chenxiong Qi    schedule 06.03.2012

Что вы делаете неправильно, так это то, что вы не можете расшифровать сообщения. Когда вы получаете закодированное сообщение, вы должны начать с его расшифровки.

Это сообщения FIX? Все технические характеристики находятся здесь http://fixprotocol.org/specifications/.

Одна библиотека Python находится здесь http://source.kentyde.com/fixlib.

person Michael Dillon    schedule 11.03.2012
comment
Мое сообщение находится в google protobuf. Мне удалось расшифровать его с помощью декодера. - person user1209304; 24.06.2012