UnicodeDecodeError: 'utf-8' kodek ne more dekodirati bajta
Tukaj je moja koda,
for line in open('u.item'):
#read each line
vsakič, ko zaženem to kodo, se pojavi naslednja napaka:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
Poskušal sem to rešiti in dodati dodaten parameter v open(), koda je videti takole;
for line in open('u.item', encoding='utf-8'):
#read each line
Vendar se spet pojavi ista napaka. Kaj naj potem storim! Prosim za pomoč.
178
3
Kot je predlagal Mark Ransom, sem našel pravo kodiranje za to težavo. Kodiranje je bilo "ISO-8859-1", zato bo zamenjava
open("u.item", encoding="utf-8")
zopen('u.item', encoding = "ISO-8859-1")
rešila problem.Vaša datoteka dejansko ne vsebuje podatkov v kodiranju utf-8, temveč neko drugo kodiranje. Ugotovite, katero je to kodiranje, in ga uporabite v klicu
open
.V kodiranju Windows-1252 bi bil na primer
0xe9
znaké
.Če jih kdo išče, je to primer za pretvorbo datoteke CSV v Pythonu 3: