Come posso urlencode una stringa con caratteri speciali æøå?Python urllib urlencode problema con æøå
ex.
urllib.urlencode('http://www.test.com/q=testæøå')
ottengo questo errore :(..
non una sequenza non stringa valida o oggetto mappatura
Come posso urlencode una stringa con caratteri speciali æøå?Python urllib urlencode problema con æøå
ex.
urllib.urlencode('http://www.test.com/q=testæøå')
ottengo questo errore :(..
non una sequenza non stringa valida o oggetto mappatura
Si dovrebbe passare al dizionario UrlEncode, non una stringa. Vedi l'esempio corretto di seguito:
from urllib import urlencode
print 'http://www.test.com/?' + urlencode({'q': 'testæøå'})
urlencode
è destinato a prendere un dizionario, per esempio:
>>> 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'
se si desidera solo a URL-encode una singola stringa, la funzione che stai cercando è quote
:
>>> 'http://www.test.com/?q='+urllib.quote(q.encode('utf-8'))
'http://www.test.com/?q=%C3%A6%C3%B8%C3%A5'
Sono indovinare UTF-8 è la codifica giusta (dovrebbe essere, per i siti moderni). Se ciò che si desidera effettivamente è ?q=%E6%F8%E5
, la codifica desiderata è probabilmente cp1252
(simile a iso-8859-1
).