Wydrukuj ciąg znaków Unicode na konsolę OK, ale nie powiedzie się, gdy przekierujesz do pliku. Jak naprawić?

Mam Pythona 2.7.1 w wersji Windows XP w uproszczonej wersji chińskiej i mam taki program (windows_prn_utf8.py):

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

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

Jeśli uruchomię go na konsoli Windows CMD, wyświetli odpowiedni chiński znak „'”; jeśli jednak spróbuję przekierować dane wyjściowe polecenia do pliku. Mam błąd

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)

Zdaję sobie sprawę, że brakuje tutaj linku. Powinien istnieć sposób na określenie, w przypadku wygenerowania 1.txt, czy znak unicode w 1.txt powinien być zakodowany w utf-8, czy w stronie kodowej-936 lub innych kodowaniach.

Więc jak to naprawić? Preferuję kodowanie utf-8 w 1.txt. Dziękuję Ci.

questionAnswers(4)

yourAnswerToTheQuestion