Maison > développement back-end > Tutoriel Python > Pourquoi le décodage d'une chaîne avec des caractères non-ASCII entraîne-t-il une « UnicodeDecodeError : octet de continuation invalide » ?

Pourquoi le décodage d'une chaîne avec des caractères non-ASCII entraîne-t-il une « UnicodeDecodeError : octet de continuation invalide » ?

Patricia Arquette
Libérer: 2024-11-26 11:20:09
original
134 Les gens l'ont consulté

Why Does Decoding a String with Non-ASCII Characters Result in a

Erreur de décodage : "UnicodeDecodeError, octet de continuation invalide"

Lors de la tentative de décodage d'une chaîne contenant des caractères non-ASCII à l'aide de l'UTF-8 codec, vous pouvez rencontrer l'erreur "UnicodeDecodeError: invalid continuation byte". Cette erreur indique que la chaîne contient une séquence d'octets qui n'est pas un octet de continuation UTF-8 valide.


Dans l'exemple spécifique fourni :

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

La chaîne o contient le caractère non-ASCII xe9 (é). Lorsque vous tentez de le décoder à l'aide du codec UTF-8, il échoue avec l'erreur susmentionnée car xe9 est un octet de continuation UTF-8 non valide.

Solution

La solution consiste à utiliser un codec différent capable de gérer les caractères non-ASCII de la chaîne. Dans ce cas, vous pouvez utiliser le codec latin-1, conçu pour gérer les caractères d'Europe occidentale, y compris les caractères accentués comme é :

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

Explication

Le Le codec latin-1 est un jeu de caractères à un octet qui comprend 256 caractères, dont les lettres de l'alphabet anglais, des caractères accentués et quelques signes de ponctuation. Il est couramment utilisé pour coder du texte dans les langues d'Europe occidentale.

En utilisant le codec latin-1, vous pouvez décoder avec succès la chaîne o 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!

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