[eside-ghost] python unicode harakiri

enrike altern2 en gmail.com
Mie Mar 2 10:42:27 CET 2011


aupa gente

la pregunta del millon... tengo un problemilla con unicode y python, 
creo que no soy en unico. El caso es que tengo que hacer

urllib.urlencode( {'blah': 'ñapás', 'blah': '機体'} )

y por supuesto me casca por error unicode. los valores del diccionario 
vienen de otro lado y llegan como llegan. Pueden tener de todo dentro de 
ellos. Necesito procesarlo para que no casque pero la ñ se me resiste.

estoy venga mirar online pero todo lo que veo me va en la linea de
 >>> unicode(u'ñapás')

pero es que a mi no me llegan strings de tipo u'blahblah' sino 
simplemente 'blahblah'

en principio hacia unicode(string), luego unicode(string, 'utf8') pero 
la ñ sigue dando problemas. Al final estoy haciendo esto pero no se muy 
bien que es lo que hace exactamente y si con los caracteres chinos, 
japoneses, griegos da problemas pq me saca un churro que no se muy bien 
lo que es

 >>> string.decode('ISO-8859-1').encode('UTF-8')
 >>>q=%C3%83%C2%B1ap%C3%83%C2%A1s%2C+%C3%A6%C2%A9%C2%9F%C3%A4%C2%BD%C2%93

Tb he probado con
 >>> unicode(string, 'utf-8').encode('utf-8')
 >>> q=%C3%B1ap%C3%A1s%2C+%E6%A9%9F%E4%BD%93
y funciona pero el resultado distinto que con 
decode('ISO-8859-1').encode('UTF-8') aunque otras veces me da un error 
de "decoding Unicode not supported"

vamos que estoy hecho un lio.

enrike


Más información sobre la lista de distribución eside-ghost