Mais
UnicodeDecodeError: 'utf-8' codec can't decodificar byte
Aqui está o meu código,
for line in open('u.item'):
#read each line
sempre que eu executar este código, ele dá o seguinte erro:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
Eu tentei resolver isso e adicionar um parâmetro extra em open(), o código é parecido;
for line in open('u.item', encoding='utf-8'):
#read each line
Mas mais uma vez dá o mesmo erro. O que devo fazer então! Por favor, ajude-me.
178
3
Como sugerido por Mark Ransom, encontrei a codificação certa para esse problema. A codificação foi "ISO-8859-1" portanto substituir
open("u.item", encoding="utf-8")
poropen('u.item', encoding = "ISO-8859-1")
resolverá o problema.O seu ficheiro não'na verdade não contém dados codificados utf-8, ele contém alguma outra codificação. Descubra o que é essa codificação e utilize-a na chamada
open
.Na codificação do Windows-1252, por exemplo, o
0xe9
seria o caracteré
.Se alguém procurar por estes, este é um exemplo para converter um ficheiro CSV em Python 3: