ich ein Stück Code haben verwenden sollte:Python verwendet 'ascii' Codec bei der Decodierung, wo es 'UTF-8'
with open('filename.txt','r') as textfile:
kwList = [x.strip('\n') for x in textfile.readlines()]
ich eine bekommen: UnicodeDecodeError: 'ascii' Codec Byte nicht dekodieren kann 0xC4 in Position 5595: ordinal nicht im Bereich (128) auf der Leitung 2
Das Problem besteht darin, dass nach dem Python-Doc: https://docs.python.org/3/library/functions.html#open
Python3 locale.getpreferredencoding(False)
verwendet die Standardcodierung zu erhalten w zu verwenden, Wenn in der offenen Methode keine Codierung angegeben ist.
Wenn ich locale.getpreferredencoding (False) ausführen, bekomme ich "UTF-8".
Warum bekomme ich 'Ascii' Codec im UnicodeDecodeError fehlgeschlagen, wenn Python 'UTF-8' verwenden soll, um dies zu tun?
Das Gebietsschema hängt vom * Kontext * ab, in dem Sie das Skript ausführen. Führen Sie den Befehl 'locale.getpreferredencoding (False)' im selben Kontext aus. –
Ist die UTF-8 bevorzugte Kodierung im selben Lauf des gleichen Codes angegeben (zB haben Sie einen 'print (locale.getpreferredencoding (False))' direkt über Ihrem 'mit open (...) as textfile' oder via hinzugefügt einige andere Mittel? –
Und warum nicht einfach das 'coding' Argument auf den' open() 'Anruf setzen? –