Мой mongodb использует utf-8, а данные чтения django из него не являются unicode, возможно, это ответ, но как решить эту проблему?mongoengine django и encoding, 'utf8' codec не может декодировать байт
данные в mongodb имеют некоторые китайские. Если я использую другую таблицу полностью из букв или цифр, она будет работать хорошо.
class Source(Document) : id = IntField() url = StringField() fetchTime = StringField() domain = StringField() xml_tpl_old = StringField() xml_tpl_new = StringField() source = BinaryField() xmlResult = StringField() xmlResult1 = StringField()
, если я использую таблицу источника (то есть некоторые китайские данные)
Source.objects.all()
Джанго даст сообщения
Traceback (most recent call last):
File "E:/Django_project/mysite/mysite/test.py", line 49, in
unicode(Source.objects)
File "D:\Python27\lib\site-packages\mongoengine-0.8.0rc4-py2.7.egg\mongoengine\queryset\queryset.py", line 216, in __repr__
self._populate_cache()
File "D:\Python27\lib\site-packages\mongoengine-0.8.0rc4-py2.7.egg\mongoengine\queryset\queryset.py", line 167, in _populate_cache
self._result_cache.append(self.next())
File "D:\Python27\lib\site-packages\mongoengine-0.8.0rc4-py2.7.egg\mongoengine\queryset\queryset.py", line 1148, in next
raw_doc = self._cursor.next()
File "D:\Python27\lib\site-packages\pymongo-2.5-py2.7-win32.egg\pymongo\cursor.py", line 814, in next
File "D:\Python27\lib\site-packages\pymongo-2.5-py2.7-win32.egg\pymongo\cursor.py", line 763, in _refresh
File "D:\Python27\lib\site-packages\pymongo-2.5-py2.7-win32.egg\pymongo\cursor.py", line 720, in __send_message
File "D:\Python27\lib\site-packages\pymongo-2.5-py2.7-win32.egg\pymongo\helpers.py", line 106, in _unpack_response
UnicodeDecodeError: 'utf8' codec can't decode byte 0xa1 in position 74: invalid start byte
Спасибо!
0xa1 является (U + 00A1 ИНВЕРТОЙ ИСКЛЮЧИТЕЛЬНОЙ МАРКИ) на латыни-1. – Cairnarvon