Dépannage d'UnicodeDecodeError dans le décodage UTF-8 de Python
Rencontre avec l'erreur "UnicodeDecodeError : le codec 'utf-8' ne peut pas décoder l'octet 0xff en position 0 : octet de départ invalide" signifie que Python tente de décoder une séquence d'octets en utilisant UTF-8 mais rencontre un octet de départ invalide. Cela se produit lorsqu'un tableau d'octets, supposé être une chaîne codée en UTF-8, contient des caractères en dehors du codage UTF-8.
Cause de l'erreur
Dans l'exemple fourni, l'ouverture d'un fichier à l'aide de open(path).read() déclenche la tentative de décodage. Étant donné que le fichier contient des octets non conformes à UTF-8, le processus de décodage échoue, entraînant l'erreur.
Solution
Pour résoudre ce problème, il est impératif de gérer le fichier comme un binaire au lieu d'un fichier texte. Cela empêche Python de tenter de décoder les octets sous forme de chaîne UTF-8.
En modifiant le code pour ouvrir le fichier avec le mode 'rb', nous forçons Python à lire le fichier sous forme binaire :
with open(path, 'rb') as f:
contents = f.read()
Spécifier le 'b' dans l'argument mode demande à Python de traiter le fichier comme un flux binaire, garantissant que le contenu reste un objet bytes, sans aucune tentative de décodage.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3