我在 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 编码。谢谢你。