重定向stdou时发生UnicodeEncodeError

2024-09-30 12:16:43 发布

您现在位置:Python中文网/ 问答频道 /正文

关于Python中Unicode的问题。我可以在常规终端中很好地打印输出,但是如果我将stdout重定向到别处(或者用subprocess模块捕获它),我会得到一个UnicodeEncodeError

$ cat example.py 
print u'Example: \u00F1'
$ python example.py 
Example: ñ
$ python example.py > /dev/null
Traceback (most recent call last):
  File "example.py", line 1, in <module>
    print u'Example: \u00F1'
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 9: ordinal not in range(128)

为什么会这样?我怎样才能修好它?在


Tags: 模块inpy终端examplestdoutunicode重定向

热门问题