【发布时间】:2011-11-23 04:01:46
【问题描述】:
我在 python 中编写了一个简单的 html 解析类,它似乎工作正常,然后我尝试将它与 django 一起使用,我得到了这个错误:
'ascii' codec can't decode byte 0xc2 in position 54465: ordinal not in range(128)
这很奇怪,因为我在班级顶部添加了这个:# encoding: utf-8。我对编码知之甚少,但有人可以告诉我这里发生了什么吗?顺便说一句,我还确保源 html 已经在 utf-8 中。谢谢!
【问题讨论】:
-
# encoding: utf-8不会对您的班级运作方式做任何事情。这只是一个评论...我认为您可能会将它与将# -*- coding: utf-8 -*-放在文件顶部混淆,它只是试图提醒解析器(或文本编辑器等)源代码的编码. -
好吧,我至少确定这是 django 问题而不是 python 问题。我单独在 python 中尝试这个类,它工作正常。然后,当我尝试在 django 中使用它时,它会返回一个错误,表明它解释了 ascii 中的所有内容。我怎样才能让 django 认为一切都在 utf-8 中?更新:没关系,我明白了。请参阅下面的答案。
-
@voithos:
# encoding: utf-8和# -*- coding: utf-8 -*-具有完全相同的效果。 Python 使用正则表达式来解析编码声明;见docs.python.org/reference/…
标签: python django encoding character-encoding