al guardar un registro en MySQL recibo un UnicodeEncodeError

Javi javi en bertayjavi.com
Lun Mar 17 20:26:35 CET 2008


Chema Cortes escribió:
> El 2008/3/11, Javi <javi en bertayjavi.com> escribió:
>
>   
>> Hola a todos, os pongo en antecedentes, uso python 2.5, mysql wx, y boa,
>>  la cuestion es que al intentar guardar un registro donde este el
>>  caracter del euro (€) me da error de encode, concretamente
>>  "UnicodeEncodeError: latin-1 codec can't encode........." sin embargo si
>>  no lleva ese caracter, guarda los datos correctamente, incluidos vocales
>>  acentuadas y eñes. En los ficheros tengo puesto en la segunda linea "
>>  #coding: utf-8" para que me deje usar esa codificacion, incluso las
>>  tablas en mysql estan creadas en utf-8 pero no consigo que no me de el
>>  error, inicialmente tenia las tablas de mysql en latin-1 y tampoco
>>  funcionaba. No se que hacer, no se por donde seguir, si alguien me puede
>>  aconsejar , le estaria muy agradecido..
>>     
>
> MySQLdb intenta siempre conectar en latin-1. Puedes cambiar la
> codificación con el método set_character_set(). Para que todo vaya
> bien, lo mejor es ejecutar las siguientes instrucciones:
>
> con.set_character_set('utf8')
> cur.execute('SET NAMES utf8;')
> cur.execute('SET CHARACTER SET utf8;')
> cur.execute('SET character_set_connection=utf8;')
>
> Donde 'con' es la conexión y 'cur' el cursor.
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> Lista de correo Python-es 
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqp
Gracias a todos por vuestra ayuda, lo he solucionado de la siguiente manera:
self.conn=MySQLdb.connect(host=servidor, user=usuario,
passwd=contrasena, db=base, charset="utf8",
init_command="set names utf8")
self.conn.names="utf8"



------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


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