如何用西里尔语解码bson?

时间:2017-04-21 12:31:15

标签: python-3.x parsing python-3.5 bson cyrillic

我得到了一个bson {'room': '55d5928a4d02f4a55007344c', 'sender': '55af71054d02f4571abe1f1f', 'message': 'Ð\x9fÑ\x80ивеÑ\x82! Ð\x97деÑ\x81Ñ\x8c вÑ\x8b можеÑ\x82е задаÑ\x82Ñ\x8c вопÑ\x80оÑ\x81 и бÑ\x8bÑ\x81Ñ\x82Ñ\x80о полÑ\x83Ñ\x87иÑ\x82Ñ\x8c оÑ\x82веÑ\x82 на него.', 'created_at': 1440146705.612493, '_id': ObjectId('55d6e5114d02f49f998a08b5')} 我想在python3中得到'消息'。我该怎么解码呢?

我已经尝试过了 raw.encode().decode('utf8') raw.encode().decode('cp1251') 但它给出了糟糕的结果 'Привет! Здесь вы можете задать вопрос ГђВё быстро получить ответ ГђВЅГђВ° него.'

1 个答案:

答案 0 :(得分:0)

这是UTF-8,已被错误地解码为Latin-1(ISO 8859-1)。

>>> raw.encode('l1').decode()
"{'room': '55d5928a4d02f4a55007344c', 'sender': '55af71054d02f4571abe1f1f', 'message': 'Привет! Здесь вы можете задать вопрос и быстро получить ответ на него.', 'created_at': 1440146705.612493, '_id': ObjectId('55d6e5114d02f49f998a08b5')}"