解决UnicodeEncodeError: 'ascii' codec can't encode characters in position...

在容器中使用 python3,如果没有做合适的配置,使用 print(“中文内容”)会出现编码问题,比如在控制台输出汉字会报错或输出了“乱码”,一般来说是因为 python3输出环境没有配置好 utf-8编码的原因,解决据说有多个,其中一个解决方法是在python 用代码就可以实现,也很容易,就是添加这样的代码:

sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())

但是这个代码是有问题,因为它把缓存停了,输出不会立即显示;
怎么办,其实这样就可以了:

import sys
import io

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding="utf8",line_buffering=True)

好用!

另一好用的方法是直接在终端中运行如下命令:
export PYTHONIOENCODING=UTF-8
然后再运行python 执行 py 文件就可以;

https://www.codenong.com/984014/

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐