Détails
UnicodeDecodeError : 'utf-8' ; codec can't decode byte (erreur)
Voici mon code,
for line in open('u.item'):
#read each line
chaque fois que j'exécute ce code, l'erreur suivante se produit :
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
J'ai essayé de résoudre ce problème en ajoutant un paramètre supplémentaire dans open(), le code ressemble à ceci ;
for line in open('u.item', encoding='utf-8'):
#read each line
Mais la même erreur s'est produite. Que dois-je faire alors ? Merci de m'aider.
178
3
Comme suggéré par Mark Ransom, j'ai trouvé le bon encodage pour ce problème. L'encodage était "ISO-8859-1" ;, donc remplacer
open("u.item" ;, encoding="utf-8" ;)
paropen('u.item' ;, encoding = "ISO-8859-1" ;)
résoudra le problème.Votre fichier ne contient pas réellement de données codées en utf-8, il contient un autre codage. Déterminez quel est cet encodage et utilisez-le dans l'appel
open
.Dans l'encodage Windows-1252 par exemple, le
0xe9
serait le caractèreé
.Si quelqu'un les recherche, voici un exemple de conversion d'un fichier CSV en Python 3 :