3

使用 Django 应用程序的已部署版本时,lxml 有一个奇怪的问题。我使用 lxml 解析从服务器获取的另一个 HTML 页面。这在我自己的计算机上的开发服务器上运行良好,但由于某种原因它UnicodeDecodeError在服务器上给了我。

('utf8', "\x85why hello there!", 0, 1, 'unexpected code byte')

我已确保 Apache(使用 mod_python)与LANG='en_US.UTF-8'.

我试过用谷歌搜索这个问题,并尝试了不同的方法来正确解码字符串,但我无法弄清楚。

在您的回答中,您可能会假设我的字符串被调用hello或其他东西。

4

3 回答 3

3

“\x85为什么你好!” 不是 utf-8 编码的字符串。您应该在将网页传递给 lxml 之前尝试解码网页。通过在获取页面时查看 http 标头来检查它使用的编码,也许你会在那里发现问题。

于 2009-05-02T22:32:06.140 回答
0

没有诸如u"\x85why hello there!"帮助之类的语法吗?

您可能会发现官方 Python 文档中的以下资源很有帮助:

于 2009-05-14T06:31:39.053 回答
-2

由于修改 site.py 不是一个理想的解决方案,请在程序开始时尝试以下操作:

import sys
reload(sys)
sys.setdefaultencoding("utf-8")
于 2009-04-30T18:41:18.803 回答