Festlegen der korrekten Codierung beim Weiterleiten von stdout in Python

| | | | |

Beim Weiterleiten der Ausgabe eines Python-Programms verwirrt der Python-Interpreter die Codierung und setzt sie auf „None“. Das bedeutet ein Programm wie dieses:

# -*- Codierung: utf-8 -*- print u"åäö" 

funktioniert gut, wenn es normal läuft, aber schlägt fehl mit:

UnicodeEncodeError: "ascii" codec can"t encode character u"xa0" in position 0: ordinal not in range(128)

wenn es in einer Pipe-Sequenz verwendet wird.

Was ist der beste Weg, dies beim Pipen zum Laufen zu bringen?Kann ich ihm einfach sagen, dass es die Codierung der Shell/des Dateisystems/was auch immer verwenden soll

Die Vorschläge, die ich bisher gesehen habe, sind, Ihre site.py direkt zu ändern oder die Standardcodierung mit diesem Hack fest zu codieren:

# -*- Codierung: utf -8 -*- import sys reload(sys) sys.setdefaultencoding("utf-8") print u"åäö" 

Gibt es einen besseren Weg, Pipings zu machen arbeiten?

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