2011-03-11 68 views
2

對於個人研究/趣味項目,我使用Python urllib2()函數。但是,當我與非ASCII字符鏈接時,比如說「الراجلاللىوراعمرسليمان」或「我爸是李剛」時,解釋器(Windows 7中的IDLE)就會遇到問題。具有國際/ UTF-8字符的Python urllib2()函數

s = urllib2.urlopen("http://www.bing.com/search?q=我爸是李剛") 

我應該如何解決這個問題? (我應該將我的查詢到ASCII還是有辦法有UTF-8的另一種方式的urllib2工作?)

回答

1
s = urllib2.urlopen("http://www.bing.com/search?" 
       + urllib.urlencode({ 'q' : u'我爸是李剛' .encode('utf8') }) 

應該工作。

+0

工程很棒 - 這就是我所需要的。 :-) – binarysolo 2011-03-11 06:51:56

0
# coding: utf-8 

import urllib 
import urlparse 

scheme = 'http' 
netloc = 'www.bing.com' 
path = '/search' 
qs = {'q': u'我爸是李剛'.encode('utf-8')} 

print urlparse.urlunparse((scheme, netloc, path, '', urllib.urlencode(qs), '')) 

# http://www.bing.com/search?q=%E6%88%91%E7%88%B8%E6%98%AF%E6%9D%8E%E5%88%9A 
+0

感謝您的幫助 - 作品很棒,格式也很好! – binarysolo 2011-03-11 06:52:28