Maison > développement back-end > Tutoriel Python > Pourquoi le décodage `utf-8` échoue-t-il sur `\\xe9` alors que `latin-1` réussit ?

Pourquoi le décodage `utf-8` échoue-t-il sur `\\xe9` alors que `latin-1` réussit ?

Linda Hamilton
Libérer: 2024-11-25 11:22:09
original
937 Les gens l'ont consulté

Why Does `utf-8` Decoding Fail on `\xe9` While `latin-1` Succeeds?

UnicodeDecodeError : octet de continuation invalide

Lors de la tentative de décodage d'une chaîne à l'aide du codec "utf-8", l'erreur "UnicodeDecodeError: ' Le codec utf8 ne peut pas décoder l'octet 0xe9..." peut survenir. Cela indique un octet de continuation invalide dans la chaîne.

Dans l'extrait de code fourni :

o = "a test of \xe9 char"
v = o.decode("utf-8")
Copier après la connexion

La chaîne "un test de xe9 char" contient un caractère représenté par l'octet xe9. Cet octet n'est pas un octet de continuation valide dans une séquence UTF-8, donc le codec "utf-8" ne peut pas le décoder.

Cependant, lorsque vous utilisez le codec "latin-1" à la place, le décodage réussit :

v = o.decode("latin-1")
Copier après la connexion

Cela est dû au fait que le codec "latin-1" interprète xe9 comme un caractère à un octet, plutôt que comme faisant partie d'un UTF-8. séquence. Par conséquent, la chaîne reste une chaîne sans rencontrer l'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!

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