[Python-de] Firebird Datenbank und Umlaute

Uwe Wilske wnf at wlsoft.de
Di Mär 18 06:57:36 UTC 2008


Hallo,

seit den Chemnitzer Linuxtagen 2008 schaue ich mir Python genauer an. 
Jetzt habe ich ähnliche Probleme, wie im Thread "xml mit Umlauten parsen"

Aus der Firebird Datenbank, die mit dem "Characterset ISO8859_1" 
erstellt wurde, möchte ich strings mit Umlauten auslesen.

     def list_Adr(self):
         dt_Adr = self.con.cursor()
         dt_Adr.execute("SELECT ID,KURZ FROM KO_ADR ORDER BY KURZ")
         rows = dt_Adr.fetchall()
         for row in rows:
             s = u""
             s = "%3i %s" % (row[0], row[1])

             #dass funktioniert, zeigt aber die Umlaute falsch an
             print s

             #das bringt bei Umlauten einen Fehler
             print s.encode("ISO-8859-1")

199 Geb�udereinigung GmbH
Traceback (most recent call last):
   File "./python/wnfDesktopkalender/wnf_fib.py", line 50, in <module>
     db.list_Adr()
   File "./python/wnfDesktopkalender/wnf_fib.py", line 41, in list_Adr
     print s.encode("ISO-8859-1")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 14: 
ordinal not in range(128)

Was mache ich falsch?

-- 
Uwe Wilske
wnf at wlsoft.de