2010-10-22 19 views

cevap

9

geçerli olmayan dize dizisi veya eşleme nesnesi bir dize, urlencode vermeyeceğinizi. Bkz Aşağıdaki doğru örnek:

from urllib import urlencode 
print 'http://www.test.com/?' + urlencode({'q': 'testæøå'}) 
26

urlencode örneğin, bir sözlük almaya yöneliktir:

>>> q= u'\xe6\xf8\xe5' # u'æøå' 
>>> params= {'q': q.encode('utf-8')} 
>>> 'http://www.test.com/?'+urllib.urlencode(params) 
'http://www.test.com/?q=%C3%A6%C3%B8%C3%A5' 

sadece URL-kodlamak için tek bir sicim isterseniz, aradığınız işlevi quote geçerli:

>>> 'http://www.test.com/?q='+urllib.quote(q.encode('utf-8')) 
'http://www.test.com/?q=%C3%A6%C3%B8%C3%A5' 

Ben UTF-8'i tahmin etmek doğru kodlamadır (modern siteler için olmalı). Gerçekte ne isterseniz ?q=%E6%F8%E5, sonra istediğiniz kodlama muhtemelen cp1252 (iso-8859-1 benzeri) 'dir.