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