gpt4 book ai didi

python - 从 MYSQL 读取模型时出现 DjangoUnicodeDecodeError

转载 作者:行者123 更新时间:2023-11-30 23:03:37 25 4
gpt4 key购买 nike

好吧,我被难住了。我有一个非常简单的 Django 模型数据库查询,如下所示:

items=models.Item.objects.all()

一旦我尝试运行它,我就会得到一个异常:

DjangoUnicodeDecodeError:'utf8' 编解码器无法解码位置 1 中的字节 0xe4:无效的连续字节。你传入了 'E\xe4I\n\x01\x80\xc0\xc9\xa3\xd0-m\xd1c%\x7f' ()

Item 模型没有什么特别复杂的地方。我进入 MYSQL 并运行 show table status,所有表都使用 utf8_general_ci 排序规则。我不知道如何解决这个问题。有什么想法吗?

我还应该提到,我在一些运行 Django 模型管理命令的代码中运行它。换句话说,在我的 models/management/commands 文件夹中,我有一个 python 文件(比如 do_stuff.py),我用 ./manage.py do_stuff 执行它。所以这一切都是从命令行运行的,即不涉及浏览器,没有模板等。只是一个自定义的 Djanago 命令。

最佳答案

我不是 unicode 专家,但您的数据似乎不是 utf-8,而是 utf-16。

你可以试试:

In [10]: b = b'E\xe4I\n\x01\x80\xc0\xc9\xa3\xd0-m\xd1c%\x7f'

In [11]: b.decode('utf-8')
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
<ipython-input-11-dbeeccecf491> in <module>()
----> 1 b.decode('utf-8')

/usr/lib/python2.7/encodings/utf_8.pyc in decode(input, errors)
14
15 def decode(input, errors='strict'):
---> 16 return codecs.utf_8_decode(input, errors, True)
17
18 class IncrementalEncoder(codecs.IncrementalEncoder):

UnicodeDecodeError: 'utf8' codec can't decode byte 0xe4 in position 1: invalid continuation byte

In [12]: print b.decode('utf-16')
੉老지킣洭揑缥

关于python - 从 MYSQL 读取模型时出现 DjangoUnicodeDecodeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22800844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com