Unicode-Zeichenfolge an Konsole ausgeben OK, schlägt jedoch fehl, wenn in eine Datei umgeleitet wird. Wie repariert man?

Ich habe Python 2.7.1 in einer vereinfachten chinesischen Version von Windows XP und ich habe ein Programm wie dieses (windows_prn_utf8.py):

#!/usr/bin/env python
# -*- coding: utf8 -*-

print unicode('\xE7\x94\xB5', 'utf8')

Wenn ich es auf der Windows CMD-Konsole ausführe, wird das richtige chinesische Zeichen "电" ausgegeben. Wenn ich jedoch versuche, die Befehlsausgabe in eine Datei umzuleiten. Ich habe einen Fehler bekommen.

D:\Temp>windows_prn_utf8.py > 1.txt
Traceback (most recent call last):
  File "D:\Temp\windows_prn_utf8.py", line 4, in <module>
    print unicode('\xE7\x94\xB5', 'utf8')
UnicodeEncodeError: 'ascii' codec can't encode character u'\u7535' in position 0: ordinal not in range(128)

Mir ist klar, dass hier ein Glied fehlt. Es sollte eine Möglichkeit geben, festzustellen, ob das Unicode-Zeichen in 1.txt in utf-8 oder codepage-936 oder anderen Codierungen codiert werden soll, wenn 1.txt generiert wird.

Wie kann man das dann beheben? Ich bevorzuge die UTF-8-Codierung in 1.txt. Vielen Dank.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage