Erreur d'encodage Unicode avec le codec 'charmap'
Lors de la tentative d'impression de la réponse à partir d'une page Web accessible via la méthode POST dans Python 3.3, il est possible de rencontrer une UnicodeEncodeError dans la console Windows. Cela se produit car la page de codes par défaut de la console, CP-850, ne prend pas en charge certains caractères Unicode, tels que le tiret cadratin (U 2014).
Solutions pour un codage robuste
Pour éviter cette erreur et garantir un encodage robuste quel que soit l'encodage de l'interface de sortie, tenez compte des points suivants solutions :
Réinitialisation globale de l'encodage : Réinitialisez globalement l'encodage de sortie au démarrage du programme. Cela garantit que toute sortie ultérieure sera correctement codée, quels que soient les paramètres par défaut de la console. Pour Python 2 et Python 3, reportez-vous aux extraits de code fournis ci-dessous :
Python 2 :
if sys.stdout.encoding != 'cp850': sys.stdout = codecs.getwriter('cp850')(sys.stdout, 'strict') if sys.stderr.encoding != 'cp850': sys.stderr = codecs.getwriter('cp850')(sys.stderr, 'strict')
Python 3 :
if sys.stdout.encoding != 'cp850': sys.stdout = codecs.getwriter('cp850')(sys.stdout.buffer, 'strict') if sys.stderr.encoding != 'cp850': sys.stderr = codecs.getwriter('cp850')(sys.stderr.buffer, 'strict')
En employant ces stratégies, vous pouvez prévenir efficacement la Erreur d'encodage Unicode et assurez-vous que votre code reste robuste et adaptable à divers scénarios d'encodage de sortie.
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!