ich versuche, ein „string“ in eine Datei zu schreiben und die folgende Fehlermeldung:Wie schreibe ich ein Unicode-Objekt in eine Datei in Python?
UnicodeEncodeError: 'ascii' codec can't encode character u'\xcd' in position 6: ordinal not in range(128)
ich die folgenden Methoden versucht:
print >>f, txt
print >>f, txt.decode('utf-8')
print >>f, txt.encode('utf-8')
Keiner von ihnen arbeiten. Ich habe die gleiche Fehlermeldung.
Was ist die Idee hinter der Codierung und Decodierung? Wenn ich ein Unicode-Objekt habe, kann ich es direkt in die Datei schreiben oder muss ich es in eine Zeichenkette umwandeln?
Wie kann ich herausfinden, welche Kodierung verwendet wird? Wie kann ich wissen, ob es utf-8 oder ascii oder etwas anderes ist?
ADDED
Ich glaube, ich habe gerade einen String in einer Datei speichern verwaltet. print >>f, txt
sowie print >>f, txt.decode('utf-8')
haben nicht funktioniert, aber print >>f, txt.encode('utf-8')
funktioniert. Ich bekomme keine Fehlermeldung und ich sehe chinesische Zeichen in meiner Datei.
Und was ist diese Zeichenfolge? – EbraHim
@EbraHim, ich vermute, dass es ein Unicode-Objekt ist, weil ich die Strings durch Lesen auf folgende Weise erhalten habe: 'für Zeile in io.open (fname, encoding =" utf8 "):' – Roman
@Roman für Zeile in io .open (fname, encoding = "utf8"): Ändern Sie die Codierung in utf-8 – Mani