En tentant de manipuler des données stockées dans un fichier texte, vous avez rencontré l'erreur suivante :
Traceback (most recent call last): File "SCRIPT LOCATION", line NUMBER, in <module> text = file.read() File "C:\Python31\lib\encodings\cp1252.py", line 23, in decode return codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 2907500: character maps to `<undefined>`
Cette erreur provient d'une inadéquation entre l'encodage supposé (CP1252) et l'encodage réel du fichier. Pour résoudre ce problème, nous devons identifier l'encodage correct et le spécifier explicitement lors de l'ouverture du fichier.
Identifier l'encodage du fichier
Comme indiqué dans la question, déterminer l'encodage du fichier est crucial. Malheureusement, cela doit être fait manuellement. Les encodages courants incluent Latin-1 et UTF-8. Cependant, étant donné que 0x90 n'est pas un caractère valide en Latin-1, UTF-8 est un candidat fort.
Spécifier l'encodage
Une fois que vous avez déterminé l'encodage , vous pouvez le préciser lors de l'ouverture du fichier à l'aide du paramètre encoding :
file = open(filename, encoding="utf8")
En fournissant le bon encodage, Python pourra décoder correctement le fichier texte et vous permettre de manipuler son contenu sans rencontrer l'exception 'UnicodeDecodeError'.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!