[pyar] Problemas con encoding. y van...
Pablo Ziliani
pablo en kultroom.com
Mie Ene 12 10:52:40 ART 2011
On 01/12/2011 10:39 AM, Maximiliano Robaina wrote:
> En una app django, estoy recibiendo un request con una variable "q" en
> donde viene el valor que posteriormente consultaré a la DB.
>
> En teoría ese "q" debería tener un unicode en iso-8859-1.
En Python 2.x o tenés un unicode() o tenés un str() codificado, un
unicode en iso-8859-1 no tiene mucho sentido.
> Por ejemplo, "q" vale "nuñez" y hago
>
>>> print repr(q)
> obtengo:
>
> u'nu\ufffd'
>
> Ahora, como puedo saber si eso está en iso-8859-1 ?
Eso está en unicode (por la u que precede la string). Si vos querés
saber a partir de qué string (str) formateada en qué encoding se formó
(mal) ese unicode, yo lo que hago son pruebas de este tipo:
>>> print u'nu\ufffd'.encode('utf8')
nu�
>>> print u'nu\ufffd'.encode('utf8').decode('latin-1')
nu�
Como ves, no llegué a ningún resultado esclarecedor. Obviamente algo se
perdió entre nuñez y u'nu\ufffd', te toca a vos buscar dónde (hint: ojo
con len(str))
> En principio, la excepción me la está tirando la función smart_str de
> django, linea 122
>
> return s.encode(encoding, errors)
>
> Alguna pista de como puedo solucionar esto ?
¿Qué excepción? yo no vi ningún error ni traceback...
More information about the pyar
mailing list