Maison > Article > développement back-end > Pourquoi le décodage `utf-8` échoue-t-il sur `\\xe9` alors que `latin-1` réussit ?
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")
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")
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!