SQLite ist eine recht feine Datenbank. Und wenn man weiß, wie man Umlaute in die Datenbank bekommt und diese auch wieder so raus kriegt, wie man sie haben möchte, dann ist pySQLite gleich noch ein wenig sympathischer. ;-) Dieses Tutorial trägt hoffentlich positiv dazu bei.
SQLite speichert intern alles im UTF-8
-Format ab. Es gibt aber einen Unterschied zwischen SQLite der Datenbank und pySQLite der Datenbankschnittstelle. SQLite arbeitet standardmäßig mit UTF-8
. pySQLite, in den neueren Versionen, erwartet UTF-8
oder UNICODE
und gibt immer UNICODE
zurück (oder versucht es zumindest).
Meine Tests mit pySQLite Version 2.3.2 haben ergeben, dass es egal ist, ob man pySQLite mit einem UTF-8
-String oder mit einem UNICODE
-String füttert. Einen UTF-8
-String muss pySQLite nicht mehr nach UTF-8
umwandeln. Das ist der einzige Unterschied.
Füttert man pySQLite aber mit einem anders kodierten String, der noch dazu ein Sonderzeichen oder ein Umlaut enthält, dann bekommt man spätestens dann einen Fehler zurück, wenn man versucht diesen String wieder aus der Datenbank auszulesen. pySQLite versucht uns wieder einen UNICODE-String zurück zu geben. Bei diesem Umwandlungsversuch wird ein Fehler ausgelöst, da pySQLite es nicht schafft, diesen String nach UNICODE umzuwandeln. Es geht einfach davon aus, dass auch wirklich UTF-8 in der Datenbank steht.
Eine saubere Sache :-) :
UNICODE --> pySQLite --> UNICODE
Etwas schneller, wenn alle Daten bereits im UTF-8
-Format vorliegen :-) :
UTF-8 --> pySQLite --> UNICODE
Das funktioniert nicht, wenn Sonderzeichen oder Umlaute im String enthalten sind :-( :
LATIN1 --> pySQLite --> UNICODE
Ich programmiere Progressive Web Applications, Mobile Apps, Desktop-Programme und noch vieles mehr. Falls es dich interessiert, findest du mehr Informationen darüber auf meiner Business-Website.