[gelöst]Decoding Problem mit MySQLdb

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
thelittlebug
User
Beiträge: 188
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

Bissal spät aber doch :

Du solltest das Encoding auch nachträglich mit "alter table ......" ändern können. Das Encoding lässt sich gesondert einstellen für:
Den ganzen Datenbankserver, wird als default genutzt wenn neue Datenbanken angelegt werden.
Eine Datenbank, wird als default genutzt wenn neue Tabellen angelegt werden.
Eine Tabelle, wird als default genutzt wenn neue Spalten angelegt werden.
Eine Spalte, hier kann nachträglich umgestellt werden wobei dann die DB die Daten konvertiert.

lgherby

p.s. häng auch grad beim Thema MySQL mit SQLAlchemy und Unicode rum. Scheint aber jetzt alles gelöst zu sein.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

MySQLdb und encoding... Da gibt es überall Probleme mit, siehe auch: http://www.python-forum.de/topic-8002.html

In django gibt es auch ein paar Tickets zum Thema... Ich hoffe das alle zukünftigen Versionen vom Modul das besser machen als bisher ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
thelittlebug
User
Beiträge: 188
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

Also Probleme hab ich keine mehr und auch die Lösung war eigentlich sehr angenehm nur hab ich mir zuerst ein paar Unicode Grundlagen durchlesen müssen um zu verstehen wie Python damit umgeht.

Im großen und ganzen habe ich nur folgendes gemacht:
1. SQLAlchemy alle Spalten auch als Unicode deklariert. ( z.b. Unicode(50) )
2. MySQL (war eine bestehende DB) alle Spalten auf utf8_unicode_ci umgestellt. Vorsichtshalber auch die Vorgaben für Tabellen und die DB falls neue Tabellen oder Spalten erstellt werden.
3. Connection String für SQLAlchemy mit den 2 Parametern versehen so wie es auch hier in diesem Thread beschrieben wurde.
4. Templatekonfiguration lt. Mako Doku.

Seitdem klappts auch mit dem bösen Unicode :)
Teilweise werden einem ja schauerhafte Märchen erzählt, was man nicht alles ersetzen und patchen muss, ich hab nur recht wenig davon mitbekommen.

lgherby
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Die Mär vom "bösen Unicode" kommt daher, dass die Leute weder verstehen, dass Unicodestrings eine Sequenz von Codepoints sind (und nicht etwa "UTF-8-Strings", was man sich darunter auch immer vorstellen soll), noch dass man sich das Leben enorm durch das `codecs`-Modul erleichtern kann.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Antworten