'ascii' codec can't encode character u'\xe4
Verfasst: Samstag 10. Mai 2014, 21:45
Guten Abend,
Bin gerade dabei einen kleinen Server für eine Android App zu schreiben, der SQL Querry für sie ausführt und die Ergebnisse zurückgibt.
Jetzt befinden sich aber in der Datenbank Umlaute und diese sollen natürlich auch mit übertragen werden.
Ausgeben über Print ist das auch kein Problem, aber sobald ich die Daten aufbereite kommt der Fehler:
Leider ist beim kopieren die Formatierung flöten gegangen. Habe versucht sie so gut wie möglich wieder hinzubekommen.
None2Str gibt einfach ein Leerzeichen zurück wenn der Inhalt None ist.
Rufe die Datenbank auch schon mit "charset=''utf8" auf:
Habe es auch schon mit:
versucht und der Header " # -*- coding: utf-8 -*- " ist natürlich auch vorhanden.
Bin gerade dabei einen kleinen Server für eine Android App zu schreiben, der SQL Querry für sie ausführt und die Ergebnisse zurückgibt.
Jetzt befinden sich aber in der Datenbank Umlaute und diese sollen natürlich auch mit übertragen werden.
Ausgeben über Print ist das auch kein Problem, aber sobald ich die Daten aufbereite kommt der Fehler:
Ich bereite die Daten wie folgt für die App auf:UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 1: ordinal not in range(128)
Code: Alles auswählen
c.execute("select * from allgemeine_infos where vorname = %s and nachname = %s order by allgemeine_infos.id", (vorname, nachname,))
db_tmp = c.fetchall()
antwort = ""
for i in db_tmp:
antwort += str(i["id"]) + ","
antwort += None2Str(i["vorname"]) + ","
antwort += None2Str(i["nachname"]) + ","
antwort += None2Str(i["geschlecht"]) + ","
antwort += None2Str(i["geburtstag"]) + ","
antwort += None2Str(i["geburts_jahr"]) + "."
conn.send(antwort)
None2Str gibt einfach ein Leerzeichen zurück wenn der Inhalt None ist.
Rufe die Datenbank auch schon mit "charset=''utf8" auf:
Code: Alles auswählen
db = MySQLdb.connect(host='blablabla.de',
db='datenbank',
user='user',
passwd='12345',
charset='utf8',
cursorclass=MySQLdb.cursors.DictCursor
)
Code: Alles auswählen
.decode("UTF-8")
und
.decode("iso-8859-1")