Imprima la cadena Unicode para consolar, pero falla cuando se redirige a un archivo. ¿Como arreglar?

Tengo Python 2.7.1 en una versión en chino simplificado de Windows XP, y tengo un programa como este (windows_prn_utf8.py):

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

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

Si lo ejecuto en la consola de Windows CMD, genera el carácter chino correcto '电'; sin embargo, si intento redirigir la salida del comando a un archivo. Tengo error

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)

Me doy cuenta de que hay un eslabón perdido aquí. Debe haber una manera de determinar, en caso de que se genere 1.txt, si el carácter Unicode en 1.txt debe codificarse en utf-8 o en la página de códigos-936 u otras codificaciones.

Entonces, ¿cómo solucionarlo? Mi preferencia es tener la codificación utf-8 en 1.txt. Gracias.

Respuestas a la pregunta(4)

Su respuesta a la pregunta