[bottle] Umlaute/Sonderzeichen

Django, Flask, Bottle, WSGI, CGI…
Antworten
vIiRuS
User
Beiträge: 16
Registriert: Montag 13. Juli 2009, 16:35

Hi

Ich lasse Python aus einer sqlite Datenbank texte auslesen, die dann von Bottle verarbeitet werden. klappt soweit auch ganz gut... nur wenn ich versuche Sonderzeichen zu nutzen, will er garnicht mehr...
Ich kriege dann folgende fehlermeldung:

Code: Alles auswählen

Traceback:
Traceback (most recent call last):
  File "/usr/lib/python2.5/bottle.py", line 416, in handle
    return handler(**args)
  File "schule.py", line 31, in anzeigen
    beitrag = [tid, row[0], row[1].decode('utf-8'), row[2].decode('utf-8'), row[3]]
  File "/usr/lib/python2.5/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 101: ordinal not in range(128)
Wie man sieht funktioniert .decode() scheinbar auch nicht.... jemand ne idee wo mein fehler ist?[/code]
BlackJack

@vIiRuS: Was sind denn das für Daten in ``row[1]`` und ``row[2]``? Kann es sein dass die schon als `unicode` von der Datenbank geliefert werden?
vIiRuS
User
Beiträge: 16
Registriert: Montag 13. Juli 2009, 16:35

BlackJack hat geschrieben:@vIiRuS: Was sind denn das für Daten in ``row[1]`` und ``row[2]``? Kann es sein dass die schon als `unicode` von der Datenbank geliefert werden?
das ist möglich. (Der fehler sieht genau gleich aus egal ob ich das decode mit drin hab oder nicht).
hier die codestelle in der das ganze ausgelesen wird

Code: Alles auswählen

cur.execute ("""SELECT texte.Titel, texte.Text, benutzer.Name, fach.Fach FROM texte INNER JOIN benutzer ON texte.UID = benutzer.UID 
INNER JOIN fach ON fach.FID = texte.FID WHERE texte.TID = '%s';""" % tid)
row = cur.fetchone()
beitrag = [tid, row[0], row[1].decode('utf-8'), row[2].decode('utf-8'), row[3]]
BlackJack

@vIiRuS: An dem Quelltext kann man das nicht erkennen, Du müsstest schon tatsächlich mal nachsehen welchen Typ die Daten zur Laufzeit haben, die in `row` stecken.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Versuch es mal mit `encode` ;)
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
vIiRuS
User
Beiträge: 16
Registriert: Montag 13. Juli 2009, 16:35

oh... *hust*.... danke. :)
Antworten