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 ?
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!