[Python-es] error al decodificar unicode

Chema Cortes pych3m4 en gmail.com
Mar Mar 8 00:36:41 CET 2011


---------- Mensaje reenviado ----------
De: Chema Cortes <pych3m4 en gmail.com>
Fecha: 7 de marzo de 2011 15:30
Asunto: Re: [Python-es] error al decodificar unicode
Para: "(P en vel)" <pdlopez en uci.cu>


El día 7 de marzo de 2011 13:57, (P en vel) <pdlopez en uci.cu> escribió:

> *******************Error que me
> da*******************************************************************
> Traceback (most recent call last):
>   File "/home/pavel/workspace/bolsa/src/aplication/parser.py", line 42, in
> <module>
>     parser_bolsa(html_page)
>   File "/home/pavel/workspace/bolsa/src/aplication/parser.py", line 36, in
> parser_bolsa
>     conn.cursor.execute(sql)
>   File "/usr/lib/pymodules/python2.6/MySQLdb/cursors.py", line 149, in
> execute
>     query = query.encode(charset)
> UnicodeEncodeError: 'latin-1' codec can't encode character u'\u0144' in
> position 121: ordinal not in range(256)
> ****************************************************************************************************
> PD: En el adjunto esta el script de la base de datos es una sola tabla
> ****************************************************************************************************

Según veo, las tablas las tienes codificadas en "latin-1", pero el
carácter que te da error, u'\u0144', es imposible representarlo en esa
codificación (se parece, pero no es la eñe).

Soluciones: recrear la tabla en utf8 o filtrar de algún modo lo que
envías al mysql. Si vas a usar utf8, prueba con los parámetros de
conexión 'charset' y/o 'use_unicode'
(http://mysql-python.sourceforge.net/MySQLdb.html)


Más información sobre la lista de distribución Python-es