"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je préserver l'encodage lors de la sortie de la tuyauterie dans Python?

Comment puis-je préserver l'encodage lors de la sortie de la tuyauterie dans Python?

Publié le 2025-03-22
Parcourir:616

How Can I Preserve Encoding When Piping Output in Python?

Préservant l'encodage lors de la sortie de la sortie en python

Lors de la redirection de la sortie standard d'un programme Python à travers un tuyau, l'interprète peut assumer incorrectement un encodage de nulaire, conduisant à un tuyau de l'Unicode. Pour résoudre ce problème, il est essentiel de spécifier explicitement le codage.

Contrairement à l'exécution dans un script, où Python s'adapte automatiquement à l'encodage du terminal, la tuyauterie nécessite un codage manuel. Une pratique courante consiste à coder la sortie en utilisant 'utf-8':

# -*- coding: utf-8 -*-
print(u"åäö".encode('utf-8'))

Cela garantit que la sortie tuyaux est cohérente avec la représentation Unicode, quel que soit le codage du programme cible. Encodage

Travaillez avec des données en interne en utilisant Unicode

    Encoder la sortie en utilisant l'encodage souhaité
  • Cette approche permet la manipulation de données sans couture et évite les erreurs liées à l'encodage. Application de la conversion en majuscules dans le processus:
  • Importer sys Pour la ligne dans SYS.stdin: line = line.decode ('iso8859-1') line = line.upper () line = line.encode ('utf-8') sys.stdout.write (line)
Dans ce cas, l'entrée est décodée à partir de l'ISO-8859-1, traitée comme Unicode, puis codée par défaut du système.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3