使用我的Django应用程序的部署版本时,lxml有一个奇怪的问题。我使用lxml来解析我从服务器获取的另一个HTML页面。这在我自己的计算机上的开发服务器上非常有效,但出于某种原因它在服务器上给了我UnicodeDecodeError
。
('utf8', "\x85why hello there!", 0, 1, 'unexpected code byte')
我确保Apache(使用mod_python)与LANG='en_US.UTF-8'
一起运行。
我已经尝试使用谷歌搜索这个问题并尝试了正确解码字符串的不同方法,但我无法弄明白。
在你的回答中,你可以假设我的字符串被称为hello
或其他东西。
答案 0 :(得分:3)
“\ x85,你好!”不是utf-8编码的字符串。您应该先尝试解码网页,然后再将其传递给lxml。通过在获取页面时查看http标头来检查它使用的编码,也许你会发现问题。
答案 1 :(得分:0)
u"\x85why hello there!"
等语法不帮助吗?
您可以从官方Python文档中找到以下资源:
答案 2 :(得分:-2)
由于修改site.py不是理想的解决方案,请在程序开始时尝试:
import sys
reload(sys)
sys.setdefaultencoding("utf-8")