在python中使用urllib2解码问题

时间:2010-11-16 15:21:06

标签: python encoding urllib2

我正在尝试在python 2.7中使用urllib2来从网上获取页面。该页面恰好以unicode(UTF-8)编码并具有希腊字符。当我尝试使用下面的代码获取并打印它时,我得到了胡言乱语而不是希腊字符。

import urllib2
print urllib2.urlopen("http://www.pamestihima.gr").read()

Netbeans 6.9.1和Windows 7 CLI中的结果相同。

我做错了什么,但是什么?

2 个答案:

答案 0 :(得分:3)

  1. Unicode UTF-8。 UTF-8是一种字符串编码,如ISO-8859-1,ASCII等。

  2. 始终解码您的数据,以便从中获取真正的Unicode。 ('somestring in utf8'.decode('utf-8') == u'somestring in utf-8'),unicode对象为u'',而非''

  3. 当您的数据离开应用时,请始终以正确的编码编码。对于Web内容,这主要是utf-8。对于控制台的东西,这是你的控制台编码。在Windows上,默认情况下 UTF-8。

答案 1 :(得分:1)

它也适合我打印。

检查您正在查看HTML源代码的程序的字符编码。例如,在Linux终端中,您可以找到“设置字符编码”并确保它是UTF-8。