Ich bekomme eine merkwürdige Fehlermeldung, wenn ich versuche, nicht-ASCII aus dem Datenspeicher zu lesen:
%Vor%Die früher übliche Schleife ist gewöhnlich:
%Vor%Was kann ich tun, um diesen Fehler zu beheben?
Mein Handler sieht so aus
%Vor%Und meine Modelldefinition ist das Benutzermodell von webapp2. Hier ist auch mein benutzerdefinierter Filer makeid:
%Vor% Die Problemumgehung ist seltsam, ich mache nur eine .decode('utf-8')
, die das nicht tun sollte:
Gibt es eine Möglichkeit, alle Variablen des Benutzerobjekts auf einmal zu dekodieren statt einzeln?
Sie versuchen, eine rohe (Byte-) Zeichenfolge in eine Unicode-Vorlage zu interpolieren. Dies geschieht, indem versucht wird, die rohe Zeichenkette mit Hilfe einer Codierung in Unicode zu dekodieren - hier die Standardcodierung "ascii" - die fehlschlägt, weil sie auf einen Codepunkt trifft, der für ASCII nicht gültig ist.
Um dies zu beheben, müssen Sie nur Unicode-Strings in Ihre Vorlage übergeben - dekodieren Sie die Zeichenfolge mit dem richtigen Codec, bevor Sie sie übergeben.
Übergeben Sie den Text / HTML, den Sie als Unicode an die Vorlage übergeben, und Sie sollten sehen, dass er verschwindet. Habe dieses Problem vorher mit Django-Vorlagen in GAE mit webapp2 gehabt.
Tags und Links unicode python-2.7 google-app-engine jinja2 webapp2