Python urllib2 () функционирует с международными символами / UTF-8 - PullRequest
2 голосов
/ 11 марта 2011

Для личного исследования / веселого проекта я использую функцию Python urllib2 ().Однако, когда у меня есть ссылка с не-ASCII-символами, скажем, «الراجل اللى ورا عمر سليمان» или «我 爸 是 李刚», тогда у интерпретатора (IDLE в Windows 7) возникают проблемы.Как мне исправить это?(Должен ли я преобразовать свой запрос в ASCII или есть способ заставить urllib2 работать с UTF-8 другим способом?)

Ответы [ 2 ]

1 голос
/ 11 марта 2011
s = urllib2.urlopen("http://www.bing.com/search?"
              + urllib.urlencode({ 'q' : u'我爸是李刚' .encode('utf8') } )

Должно работать.

0 голосов
/ 11 марта 2011
# 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
...