UnicodeDecodeError in MySQLdb

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
achim
User
Beiträge: 10
Registriert: Dienstag 11. Juli 2006, 18:48

Liebe Community,

Ich habe Python erst vor kurzem kennengelernt. Nun habe ich ein Problem, mit dem ich nicht weiterkomme:

Ich lese eine Text-Datei ein, die SQL-Statements enthält und schicke dieses Statements anschliessend Zeile für Zeile an einen lokal installierten MySQL-Server. Dazu benutze ich das MySQLdb-Package. Das funktioniert soweit auch. Aber immer, wenn innerhalb eines SQL-Statements ein Umlaut steht, bricht das Programm mit folgender Fehlermeldung ab:

Code: Alles auswählen

Traceback (most recent call last):
  File "Script3.py", line 82, in ?
    main ();
  File "Script3.py", line 60, in main
    c.execute (zeile)
  File "C:\Programme\Python24\Lib\site-packages\MySQLdb\cursors.py", line 146, in execute
    query = query.encode(charset)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xfc in position 46: ordinal not in range(128)
>Exit code: 1
Das bedeutet wohl, dass das Codec nur reinen 7-Bit ASCII-Code ohne deutsche Umlaute verarbeiten kann. Aber wieso ist das so und wie kann man das Problem lösen?

Über Eure Hilfe würde ich mich freuen
Achim
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

Hallo achim,

ich grüße Dich hier bei uns. Schön das Du her gefunden hast!

So ich mach das mal ganz kurz:

http://www.python-forum.de/post-30572.html#30572

Schau Dir dies bitte schon mal an - Und in wenigen Minuten schreiben Dir sicherlich die Admins eine ganz genaue Erklärung.

Das Bord hat schon einige, nicht unbedingt wenige Beiträge. Die findet man über die Suchfunktion.
Und das Thema hatten wir eben halt auch schon so oft. :wink:

gruss andy
achim
User
Beiträge: 10
Registriert: Dienstag 11. Juli 2006, 18:48

Hallo Andy,

Danke für die freundliche Begrüssung und den Link. Die Erklärungen dort sind sehr ausführlich, da müsste ich eigentlich schnell eine Lösung finden.

Ich hatte die Suchfunktion auch schon benutzt, aber wohl nicht die richtigen Begriffe eingegeben :wink:

Gruss
Achim
Antworten