Mysql
 sql >> Database >  >> RDS >> Mysql

Flask_SQLAlchemy, MySQL, memorizza i caratteri svedesi å, ä, ö?

Dato che stai usando Python 2.7, devi specificare che la tua stringa contiene unicode.

>>> db.session.add(Users(u'ä'))

Puoi anche utilizzare un'importazione futura per trattare tutte le stringhe come unicode.

from __future__ import unicode_literals

In alternativa puoi aggiornare la tua versione di Python. 2.7 è l'ultima versione a trattare le stringhe come byte anziché come unicode.

Modifica

Dovrai anche aggiornare il tuo __repr__ in modo che gestisca correttamente unicode.

def __repr__(self):
    return self.name.decode('utf-8')

o qualsiasi codifica tu voglia usare.

In generale, dovrai assicurarti di gestire la codifica e la decodifica in unicode. Non posso esortarti abbastanza a considerare l'utilizzo di una versione più recente di Python. Uno dei più grandi cambiamenti in Python 3 risolve proprio questo problema.