Définition du codage correct lors de la canalisation de stdout en Python

| | | | |

Lorsque vous dirigez la sortie d'un programme Python, l'interpréteur Python s'embrouille au sujet de l'encodage et le définit sur Aucun. Cela signifie un programme comme celui-ci :

# -*- codage : utf-8 -*- print u"√•√§√∂" 

fonctionnera correctement lorsqu'il sera exécuté normalement, mais échouera avec :

UnicodeEncodeError : le codec "ascii" ne peut pas encoder le caractère u"xa0" en position 0 : ordinal pas dans la plage (128)

lorsqu'il est utilisé dans une séquence de tubes.

Quelle est la meilleure façon de faire fonctionner cela lors de la canalisation ? Puis-je simplement lui dire d'utiliser n'importe quel encodage du shell/système de fichiers/ce qui est

Les suggestions que j'ai vues jusqu'à présent sont de modifier votre site.py directement, ou de coder en dur le codage par défaut en utilisant ce hack :

# -*- coding : utf -8 -*- import sys reload(sys) sys.setdefaultencoding("utf-8") print u"√•√§√∂" 

Existe-t-il une meilleure façon de faire de la tuyauterie travailler ?

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method