Docker 运行Python报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position xxxxx
今天在创建的docker中运行YOLO代码
voc_python.py
时报错:UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 32-35: ordinal not in range(128)
应该是编码集的问题,所以查看了docker支持的编码集。
1.查看docker容器编码格式:
执行locale
,可以看到当前编码格式为POSIX
,而这种编码不支持中文
2.查看容器所有语言环境
locale -a
可以看到不支持中文,所以下载中文语言包:apt-get -y install language-pack-zh-hans
然后增加中文编码集:export LANG=zh_CN.UTF-8
(临时的,如果要永久可以加入~/.bashrc 或 ~/.zshrc)
接着locale
查看:
有了中文语言包。
然后locale -a
:
到这里就不会产生中文乱码了,也就可以运行Python程序中有中文的代码了。