问题如题,报错例如:
UnicodeEncodeError: 'gbk' codec can't encode character '\xad' in position 91: il
legal multibyte sequence
[5744] Failed to execute script asistpromote
网上查了下,说了半天是因为python的编码问题,print函数默认的编码是utf8,在输出到控制台时可以控制编码,所以正确输出,但是输出到重定向,编码是没法控制的,所以,如果不是utf8,比如中文系统是gbk,那就报上述错,找了一圈儿各种复杂解决都有说,几乎没用,最后找到了一个解决方案,亲测有用:
直接更改 sys.stdout 的编码,main里添加如下语句:
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8')
原文还讲了很多其他的东西,需要的话,或者这个方法不能解决你的问题,可以看原文:python,window控制台下编码问题 - ThreeF - 博客园www.cnblogs.com
以上。