Вывести строку в кодировке Юникод в консоль ОК, но не удается при перенаправлении в файл Как исправить?

У меня есть Python 2.7.1 на упрощенной китайской версии Windows XP, и у меня есть такая программа (windows_prn_utf8.py):

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

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

Если я запускаю его на консоли Windows CMD, он выводит правильный китайский символ '电'; однако, если я пытаюсь перенаправить вывод команды в файл. Я получил ошибку.

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)

Я понимаю, что здесь отсутствует ссылка. Должен быть способ определить, в случае генерирования 1.txt, должен ли кодировщик Unicode в 1.txt кодироваться в utf-8 или codepage-936 или в других кодировках.

Тогда как это исправить? Я предпочитаю иметь кодировку utf-8 в 1.txt. Спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос