491 Stimmen

UnicodeDecodeError, ungültiges Fortsetzungsbyte

Warum funktioniert der unten stehende Punkt nicht? Warum funktioniert es mit dem Codec "latin-1"?

o = "a test of \xe9 char" #I want this to remain a string as this is what I am receiving
v = o.decode("utf-8")

Daraus ergibt sich:

 Traceback (most recent call last):  
 File "<stdin>", line 1, in <module>  
 File "C:\Python27\lib\encodings\utf_8.py",
 line 16, in decode
     return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError:
 'utf8' codec can't decode byte 0xe9 in position 10: invalid continuation byte

2voto

Martin Taco Punkte 31

In diesem Fall habe ich versucht, eine .py auszuführen, die eine path/file.sql aktiviert.

Meine Lösung war, die Kodierung der Datei file.sql auf "UTF-8 ohne BOM" zu ändern, und es funktioniert!

Sie können dies mit Notepad++ tun.

Ich werde einen Teil meines Codes hinterlassen.

con = psycopg2.connect(host = sys.argv[1],
port = sys.argv[2],dbname = sys.argv[3],user = sys.argv[4], password = sys.argv[5])

cursor = con.cursor()
sqlfile = open(path, 'r')

-2voto

Die Lösung war der Wechsel zu "UTF-8 sin BOM".

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X