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

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

我已经确保 Apache(带有 mod_python)运行 LANG='en_US.UTF-8'.

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

在你的回答中,你可能会假设我的字符串被称为 hello 或者其他的东西。

有帮助吗?

解决方案

" \ x85why你好!“不是utf-8编码的字符串。您应该先尝试解码网页,然后再将其传递给lxml。通过在获取页面时查看http标头来检查它使用的编码,也许你会发现问题。

其他提示

语法不是这样的 u"\x85why hello there!" 帮助?

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

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

import sys
reload(sys)
sys.setdefaultencoding("utf-8")
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top