Maison >développement back-end >Tutoriel Python >Comment gérer UnicodeEncodeError lors de la transmission de la sortie en Python ?

Comment gérer UnicodeEncodeError lors de la transmission de la sortie en Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-03 03:42:17462parcourir

How to Handle UnicodeEncodeError When Piping Output in Python?

Définition de l'encodage pour la sortie redirigée en Python

Lors de l'envoi de la sortie standard, l'interpréteur Python rencontre un problème d'encodage, conduisant à une UnicodeEncodeError. Cela se produit lorsqu'un programme tente d'imprimer des caractères Unicode sans spécifier le codage correct.

Meilleure pratique : encoder la sortie lors du transfert

La solution consiste à encoder manuellement la sortie avant tuyauterie. Une règle générale est de toujours travailler avec Unicode en interne, en décodant l'entrée et en encodant la sortie. Par exemple :

print(u"åäö".encode('utf-8'))

Décodage, manipulation et codage dans une séquence de tuyaux

Un exemple pratique est un programme Python qui convertit entre ISO-8859-1 et UTF-8, texte en majuscule :

import sys

for line in sys.stdin:
    # Decode received input
    line = line.decode('iso8859-1')

    # Manipulate Unicode internally
    line = line.upper()

    # Encode output
    line = line.encode('utf-8')
    sys.stdout.write(line)

Éviter de définir la valeur par défaut Encodage

Modifier site.py ou coder en dur l'encodage par défaut n'est pas recommandé. Cela peut nuire à d'autres modules qui s'appuient sur la valeur par défaut ASCII. Il est crucial d'encoder explicitement la sortie lors de la diffusion pour garantir les résultats souhaités.

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