2011-03-11 2 views
2

개인 연구/재미 프로젝트의 경우 Python urllib2() 함수를 사용하고 있습니다. 그러나 ASCII가 아닌 문자를 가진 링크가있을 때, "الراجل اللى ورا عمر سليمان"또는 "我 是是 李刚"라고하면 인터프리터 (Windows 7의 IDLE)가 문제가된다.국제/UTF-8 문자가있는 Python urllib2() 함수

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

어떻게 수정해야합니까? (I ASCII로 내 쿼리를 변환하거나 UTF-8 다른 방법으로 urllib2가 작업을하는 방법은 무엇입니까해야합니까?)

답변

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

작동합니다.

+0

위대한 작품 - 그게 전부입니다. :-) – binarysolo

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