为什么重定向不适用于python脚本?

为什么重定向不适用于python脚本?,python,bash,shell,redirect,Python,Bash,Shell,Redirect,可能重复: 以下内容按预期在python shell(2.7.3)中运行 for i in range(999): print i, unichr(i) 将其保存在文件(asd.py)中,并在shell中运行 $ ./asd.py 也可以,但是 $ ./asd.py > asd.txt 给出: Traceback (most recent call last): File "./asd.py", line 3, in <module> print i

可能重复:

以下内容按预期在python shell(2.7.3)中运行

for i in range(999):
    print i, unichr(i)
将其保存在文件(asd.py)中,并在shell中运行

$ ./asd.py
也可以,但是

$ ./asd.py > asd.txt
给出:

Traceback (most recent call last):
  File "./asd.py", line 3, in <module>
    print i, unichr(i)
UnicodeEncodeError: 'ascii' codec can't encode character u'\x80' in position 0: ordinal not in range(128)
回溯(最近一次呼叫最后一次):
文件“/asd.py”,第3行,在
打印一,联合国人权高专办(一)
UnicodeEncodeError:“ascii”编解码器无法对位置0中的字符u'\x80'进行编码:序号不在范围内(128)
为什么呢?如何解决这个问题?

试试下面的代码

#!/usr/bin/python
for i in range(999):
   print i, unichr(i).encode('utf-8')

看看@sr2222:这就回答了,谢谢?区别是什么?@glglgl的区别是.encode('utf-8')它工作正常,但在gedit中打开文件时,它会显示:您打开的文件有一些无效字符。如果继续编辑此文件,可能会损坏此文档。原因是什么?“$iconv-f utf-8 asd.txt”请尝试此操作command@Ammar对不起,我是瞎子。没有看到它。。。