Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Flask_SQLAlchemy, MySQL, schwedische Zeichen speichern å, ä, ö?

Da Sie Python 2.7 verwenden, müssen Sie angeben, dass Ihre Zeichenfolge Unicode enthält.

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

Sie können auch einen zukünftigen Import verwenden, um alle Zeichenfolgen als Unicode zu behandeln.

from __future__ import unicode_literals

Alternativ können Sie Ihre Version von Python aktualisieren. 2.7 ist die letzte Version, die Strings als Bytes und nicht als Unicode behandelt.

Bearbeiten

Sie müssen auch Ihren __repr__ aktualisieren damit Unicode richtig verarbeitet wird.

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

oder welche Codierung Sie verwenden möchten.

Im Allgemeinen müssen Sie sicherstellen, dass Sie die Kodierung von und Dekodierung in Unicode handhaben. Ich kann Sie nicht genug drängen, eine neuere Version von Python in Betracht zu ziehen. Eine der größten Änderungen in Python 3 adressiert genau dieses Problem.