python字符解码异常在运行时但不是eclipse

时间:2013-02-07 17:51:00

标签: python bash encoding

我有一个python脚本,它获取一个url页面,然后html将其转义。

目标页面包含英文和希伯来字体。

opener = urllib2.build_opener(
            urllib2.HTTPRedirectHandler(),
            urllib2.HTTPHandler(debuglevel = 0),
            urllib2.HTTPSHandler(debuglevel = 0),
            urllib2.HTTPCookieProcessor(self.cj)
        )
response = opener.open(url)
data = response.read()
goodData = HTMLParser.HTMLParser().unescape(data)
print goodData

在eclipse中运行时代码运行正常。 当打包并在linux shell(ubuntu 12.04)上运行时,它在下一个到最后一行(在打印之前)失败了:

'ascii' codec can't decode byte 0xe2 in position 775: ordinal not in range(128)

我无法调试这个,因为在eclipse中这似乎工作正常。 怎么样?

1 个答案:

答案 0 :(得分:0)

好的,解决了它:

opener = urllib2.build_opener(
            urllib2.HTTPRedirectHandler(),
            urllib2.HTTPHandler(debuglevel = 0),
            urllib2.HTTPSHandler(debuglevel = 0),
            urllib2.HTTPCookieProcessor(self.cj)
        )
response = opener.open(url)
data = response.read()
data = data.decode('utf8')
goodData = HTMLParser.HTMLParser().unescape(data)
print goodData

感谢: UnicodeDecodeError while processing filenames