2010-11-16 130 views
0

我想在python 2.7中使用urllib2從網頁中獲取一個頁面。該頁面恰好以unicode(UTF-8)編碼,並具有希臘字符。當我嘗試使用下面的代碼獲取並打印它時,我得到的不是希臘字符而是胡言亂語。蟒蛇urllib2解碼問題

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

結果在Netbeans 6.9.1和Windows 7 CLI中都是一樣的。

我做錯了什麼,但什麼?

+0

你的Python代碼打印正確的希臘字符給我。 – eumiro 2010-11-16 15:25:19

+2

您的控制檯未設置爲打印Unicode(可能未設置爲處理UTF-8)。搜索「Python打印Unicode字符」,因爲這是你真正的問題。 – 2010-11-16 15:39:38

+0

print urllib2.urlopen(「http://www.pamestihima.gr」).read()。encode(「utf-8」) – 2010-11-16 16:12:18

回答

1

它也適合我打印。

檢查您正在查看HTML源代碼的程序的字符編碼。例如,在Linux終端中,您可以找到「設置字符編碼」並確保它是UTF-8。

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。