kann nicht dekodiert werden Dies ist in Python 2.4. Hier ist meine Situation. Ich ziehe eine Zeichenfolge aus einer Datenbank, und es enthält ein Umlaute 'o' (\ xf6). An diesem Punkt, wenn ich Typ (Wert) ausführen, gibt es str zurück. Ich versuche dann, .decode ('utf-8') auszuführen, und ich bekomme einen Fehler ('utf8' Codec kann Bytes in Position 1-4 nicht decodieren).Unicode-Zeichenfolge in Python 2.4
Wirklich mein Ziel hier ist nur erfolgreich Typ (Wert) Rückkehr Unicode. Ich fand eine earlier question , die einige nützliche Informationen hatte, aber das Beispiel aus der ausgewählten Antwort scheint nicht für mich zu laufen. Gibt es etwas, was ich hier falsch mache?
Hier einige Code zu reproduzieren:
Name = 'w\xc3\xb6rner'.decode('utf-8')
file.write('Name: %s - %s\n' %(Name, type(Name)))
ich an die Schreib Anweisung bekommen eigentlich nie, weil es auf der ersten Anweisung schlägt fehl.
Vielen Dank für Ihre Hilfe.
Edit:
ich festgestellt, dass die DB charset utf8 ist. In meinem zu reproduzierenden Code habe ich '\ xf6' in '\ xc3 \ xb6' geändert, und der Fehler tritt immer noch auf. Gibt es einen Unterschied zwischen "utf-8" und "utf8"?
Der Tipp auf Codecs zum Schreiben in eine Datei ist praktisch (ich werde es definitiv verwenden), aber in diesem Szenario schreibe ich nur in eine Protokolldatei für Debugging-Zwecke.
Welchen Zeichensatz verwenden Sie in Ihrer Datenbanktabelle? Ich vermute es ist wahrscheinlich nicht utf-8. Versuchen Sie das stattdessen an 'decode' zu übergeben. – elo80ka