Django 和 lxml 中的解码问题
题
使用 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")
不隶属于 StackOverflow