Zur Verwaltung dieser Seite setze ich das Python-Framwork django ein welches ich etwa wöchentlich direkt via SVN aus dem Trunk ziehe. (Wenn du bis jetzt nichts verstanden hast, wird dich der Rest auch nicht interessieren. ;-)
Diese Woche wurde in Django ein schon lange heiß diskutierter Patch zur Steigerung der MySQL-Performance eingespielt welcher bei mir arge Probleme mit den Sonderzeichen verursachte. (siehe Bild) Genau genommen waren die Sonderzeichen weder UTF-8 codiert (so wie sie original in der Datenbank stehen) noch Westeuropäisch.

Die Lösung war simpel, wenn auch nicht einfach zu finden. In die Settings-Datei muss man eine neue Zeile mit speziellen Einstellungen für die Datenbank einfügen, so dass die Daten aus MySQL auch wirklich als UTF-8 angesehen werden.
DATABASE_OPTIONS = dict(charset="utf8")
Das reichte bei mir schon aus. Das Problem tritt übrigens nur in speziellen Konstellationen zwischen Django, MySQLDB und bestimmen MySQL-Kollationen auf.
Update
Mittlerweile wurde ein Patch eingespielt der es auch erlaubt, die "alte" MySQL-API zu nutzen. Dazu muss in der settings.py die Zeile so geändert werden:
DATABASE_ENGINE = 'mysql' # Zur Nutzung der "alten" Api:
DATABASE_ENGINE = 'mysql_old'
So läuft Django bei mir (Python 2.3, MySQL 5.032) problemlos und die sporadisch auftrende Fehlermeldung "Warning: data truncated" im Admin-Bereich ist auch verschwunden.
Comments closed
Sorry, new comments are no longer allowed for this entry.
Write me an email if you have feedback or any questions regarding this post. If you found this post useful and just want to say thank you then don't forget that I have an Amazon Wishlist. :-)