Fehler 'utf-8' codec can't decode byte 0xfc in position 54: invalid start byte in python?
Ich habe ein Programm mit io.open() geschrieben, und als ich es ausgeführt habe, kam folgende Fehlermeldung:
Traceback (most recent call last):
File "C:\Users\theoe\Theo\Vokabeltrainer_Mittel_Lat.py", line 144, in <module>
loadDiagnose()
File "C:\Users\theoe\Theo\Vokabeltrainer_Mittel_Lat.py", line 15, in loadDiagnose
Datei = list(Datei2)
File "C:\Program Files\Python39\lib\codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfc in position 54: invalid start byte
das finde ich sehr komisch, da in utf-8 ja aalle zeichen da sind, auch das ü(das Byte 0xfc ist das Byte 252 und dieses Byte ist ü)
Kann mir da bitte jemand sagen, was das zu bedeuten hat?
Freue mich jetzt schon auf eur antworten.
2 Antworten
das finde ich sehr komisch, da in utf-8 ja aalle zeichen da sind, auch das ü(das Byte 0xfc ist das Byte 252 und dieses Byte ist ü)
UTF-8 ist eine Kodierung mit variabler Länge. Manche Codepoints werden als ein Byte, manche als mehrere (bis zu 4) Bytes kodiert. Somit hängt es vom Kontext (d.h. den Bytes davor) ab, ob das Byte 0xfc als "ü" dekodiert wird oder einfach an dieser Stelle falsch ist.
UTF-8 hat aber nicht nur 1 Byte , das hat immer mehrer Bytes und somit ist wohl das Startbyte falsch .
und was sagt die suchmaschiene dazu ?
wie wäre es wenn du einfach mal grundlagen von UTF-8 lernst .
icvh such mal für dich mit genau deinem fehler
nächstes mal bitte selber so schlau sein .
btw , es gibt UTF-8 with BOM , glaub ich ist windows und UTF-8 ohne BOM ist eben nicht windows . kanna uch sein das du ASCII zeichen dazwischen hast die ungültig sind . ÜÄÖ sind halt anders in der Latin definiert .
das stimmt, ich habe gerade bemerkt, dass das ASCII-Zeichen waren.
Was ist ein Startbyte?