Windows XP の簡体字中国語バージョンで Python 2.7.1 を使用しており、次のようなプログラム (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 が生成された場合に備えて、1.txt の Unicode 文字を utf-8 または codepage-936 またはその他のエンコーディングでエンコードする必要があるかどうかを判断する方法が必要です。
次に、それを修正する方法は?私の好みは、 1.txt に utf-8 エンコーディングを含めることです。ありがとうございました。