Maison > développement back-end > Tutoriel Python > Pourquoi est-ce que j'obtiens \'UnicodeDecodeError: \'utf-8\' codec can\'t decode byte 0xff...\' lors de la lecture d'un fichier en Python ?

Pourquoi est-ce que j'obtiens \'UnicodeDecodeError: \'utf-8\' codec can\'t decode byte 0xff...\' lors de la lecture d'un fichier en Python ?

Susan Sarandon
Libérer: 2024-11-04 07:34:02
original
525 Les gens l'ont consulté

Why am I getting

Comment résoudre « Erreur UnicodeDecodeError : le codec 'utf-8' ne peut pas décoder l'octet 0xff en position 0 : octet de démarrage invalide » ?

Cette erreur dans Python peut survenir lors de la tentative de conversion de données de tableau d'octets en chaîne Unicode à l'aide du codage utf-8, mais la séquence d'octets n'est pas valide selon les règles utf-8.

La cause première dans ce cas, Python interprète le contenu du fichier comme une chaîne codée en utf-8 lors de l'opération de lecture. Cependant, le fichier peut contenir des caractères non utf-8, tels qu'une séquence d'octets (par exemple, 0xff) qui n'est pas un octet de début valide en utf-8.

Pour résoudre cette erreur, considérez la nature de votre fichier et appliquez la solution suivante :

Solution :

Étant donné que le fichier est probablement un fichier binaire, vous devez le traiter comme tel. Modifiez le code de lecture du fichier pour utiliser « rb » comme mode d'ouverture, comme indiqué ci-dessous :

<code class="python">with open(path, 'rb') as f:
  contents = f.read()</code>
Copier après la connexion

En spécifiant « rb », le fichier sera ouvert en mode binaire, en préservant les octets en tant qu'octets plutôt que en les interprétant comme des caractères codés en utf-8. Cela empêchera Python de tenter de décoder la séquence d'octets invalide et évitera l'exception.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal