比如如下代码:
|
|
|
|
没关系
|
|
会报错
UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xa0’ in position 0: illegal multibyte sequence
之后尝试设置环境变量
|
|
解决问题了,猜测是终端直接走stdio,编码会使用utf-8,但是重定向之后会使用GBK编码的原因。从而导致某些UTF-8的字符在GBK里面无法编码。 也可以直接设置:
|
|
或者使用
|
|
参考python3官方文档的说法可以解释这一现象:
https://docs.python.org/3/library/sys.html
使用一下代码进行测试,会发现重定向的和直接打印的有很大不同:
|
|

说些什么吧!