¿Cómo puedo urlencode una cadena con caracteres especiales æøå?Problema urlencode de Python con æøå
ex.
urllib.urlencode('http://www.test.com/q=testæøå')
consigo este error :(..
no una secuencia no válida de cadena o objeto de asignación de
¿Cómo puedo urlencode una cadena con caracteres especiales æøå?Problema urlencode de Python con æøå
ex.
urllib.urlencode('http://www.test.com/q=testæøå')
consigo este error :(..
no una secuencia no válida de cadena o objeto de asignación de
Debe pasar diccionario para urlencode, no es una cadena. Ver el ejemplo correcto a continuación:
from urllib import urlencode
print 'http://www.test.com/?' + urlencode({'q': 'testæøå'})
urlencode
ellos tiene en un diccionario, por ejemplo:
>>> 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'
Si lo que desea es cifrar la URL de una sola cadena, la función que estás buscando es quote
:
>>> 'http://www.test.com/?q='+urllib.quote(q.encode('utf-8'))
'http://www.test.com/?q=%C3%A6%C3%B8%C3%A5'
estoy adivinar UTF-8 es la codificación correcta (debería ser, para sitios modernos). Si lo que realmente quiere es ?q=%E6%F8%E5
, entonces la codificación que desea es probablemente cp1252
(similar a iso-8859-1
).