【问题标题】:mongoengine django and encoding, 'utf8' codec can't decode bytemongoengine django 和编码,“utf8”编解码器无法解码字节
【发布时间】:2013-05-14 02:08:35
【问题描述】:

我的 mongodb 使用 utf-8,django 从中读取数据不是 unicode,也许这是答案,但是如何解决这个问题?

mongodb中的数据有一些中文。如果我使用其他完全由字母或数字组成的表格,它会很好用。

类源(文档): id = IntField() url = 字符串字段() fetchTime = StringField() 域 = 字符串字段() xml_tpl_old = StringField() xml_tpl_new = 字符串字段() 源 = BinaryField() xmlResult = StringField() xmlResult1 = StringField()

如果我使用源表(它有一些中文数据)

Source.objects.all()

django 会发消息


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 在拉丁语 1 中是¡(U+00A1 倒置感叹号)。

标签: python django mongodb encoding mongoengine


【解决方案1】:

在你的 python 控制台中试试这个

>>>import sys
>>>sys.getdefaultencoding()

如果结果是'ascii',你应该改变默认编码。

【讨论】:

    【解决方案2】:

    在将数据保存到数据库之前,我使用 base64 编码。

    【讨论】:

      猜你喜欢
      • 2016-08-03
      • 2012-08-08
      • 1970-01-01
      • 2019-03-13
      • 2012-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多