al guardar un registro en MySQL recibo un UnicodeEncodeError
Chema Cortes
pych3m4 en gmail.com
Lun Mar 17 13:08:10 CET 2008
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.
------------ 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