2016-08-08 48 views
2

Ich habe Code geschrieben, der den BiPython Entrez-Wrapper nutzt. Code funktionierte gut auf meinem früheren Win10-Laptop (Python 3.5.1), aber ich habe gerade den Code auf einen neuen Win10-Laptop mit den gleichen Versionen von jedem Paket und Python installiert und ich bekomme jetzt einen Dekodierungsfehler.UTF-8 über cp1252 erzwingen (Python3)

Der Traceback-Fehler führt zu einer Funktion, die Text abruft - sie versucht, den Text mit cp1252 zu dekodieren, wenn UTF-8 verwendet werden soll. Ich weiß, dass ähnliche Fragen gestellt wurden, aber keine hat sich mit diesem Problem innerhalb eines Pakets beschäftigt (Biopython in meinem Fall). Das Kopieren der UTF-8-Codierungsdatei in Python/lib und das Umbenennen in cp1252.py löst das Problem, aber dies ist offensichtlich keine langfristige Lösung.

File "C:\Users\arjun\AppData\Local\Programs\Python\Python35-32\lib\encodings\cp1252.py", line 23, in decode 
    return codecs.charmap_decode(input,self.errors,decoding_table)[0] 

UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 21715: character maps to <undefined> 
+0

Ich habe ähnliches Problem. Hast du es geschafft, es zu lösen? Ich habe nach Antworten gesucht und anscheinend python nimmt die Standard-Systemcodierung auf. Und dieser Befehl sollte die richtige Codierung eingestellt haben: chcp 65001 Aber es hat nicht in meinem Fall funktioniert. Ich habe den hier genannten Ansatz verwendet: http://stackoverflow.com/questions/9233027/unicodedecodeerror-charmap-codec-cant-decode-byte-x-in-position-y-character Das hat in meinem Fall funktioniert. –

Antwort

0

Verwenden Sie das io Modul zum Lesen, wenn Sie Python 3.x verwenden (https://docs.python.org/2/library/io.html#io.open). Standardmäßig verwendet es die Codierung, die auf seiner laufenden Plattform angegeben ist. Sie können auch Ihre eigene Kodierung angeben, wie in den Dokumenten erläutert.