Maison >développement back-end >Tutoriel Python >Pourquoi mon code Python renvoie-t-il une UnicodeEncodeError lors de l'encodage du texte d'une page Web ?

Pourquoi mon code Python renvoie-t-il une UnicodeEncodeError lors de l'encodage du texte d'une page Web ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-22 04:35:14873parcourir

Why Does My Python Code Throw a UnicodeEncodeError When Encoding Web Page Text?

UnicodeEncodeError : la lutte du codec 'ascii' avec les caractères non-ASCII

Lors de la récupération de texte à partir de diverses pages Web, vous pourriez rencontrer l'énigmatique " UnicodeEncodeError" indiquant que le codec 'ascii' ne peut pas encoder un caractère spécifique. Cette incohérence, où le code fonctionne sans problème pour certaines pages mais échoue avec d'autres, provient souvent de la présence de caractères non-ASCII.

Dans l'extrait de code fourni, le problème survient lors de la tentative de conversion d'une chaîne Unicode. (contenant probablement le caractère ' ') à la chaîne d'octets codée 'ascii'. Cependant, « ascii » ne peut pas représenter ce caractère, ce qui entraîne l'erreur « ordinal not in range(128) ».

Élimination du dilemme d'encodage

Pour résoudre ce dilemme , abandonnez la pratique consistant à utiliser str() pour convertir les chaînes Unicode en texte codé. Au lieu de cela, profitez de la puissance de .encode() qui encode explicitement la chaîne en utilisant l'encodage souhaité, tel que UTF-8.

Exemple de solution d'encodage :

p.agent_info = u' '.join((agent_contact, agent_telno)).encode('utf-8').strip()

Vous pouvez également adopter entièrement le monde Unicode, en travaillant exclusivement avec des chaînes Unicode et en évitant d'avoir à effectuer des opérations d'encodage et de décodage.

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!

Déclaration:
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