Python中urllib2的解码问题

0 投票
2 回答
1798 浏览
提问于 2025-04-16 07:09

我正在尝试在Python 2.7中使用urllib2从网上获取一个页面。这个页面的编码是unicode(UTF-8),里面有希腊字符。当我用下面的代码去获取并打印这个页面时,结果却是乱码,而不是希腊字符。

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

在Netbeans 6.9.1和Windows 7的命令行中,结果都是一样的。

我好像做错了什么,但到底是什么呢?

2 个回答

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. 当你的应用程序要发送数据时,一定要编码成正确的格式。对于网页内容,通常使用utf-8。对于控制台内容,则要根据你的控制台编码来定。在Windows系统上,默认情况下不是使用UTF-8。

1

我这边也能正常打印出来。

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

撰写回答