问题说明
docker的python容器中执行print(‘测试’),常见的错误提示,在宿主机不会出现
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-127: ordinal not in range(128)
问题分析
原因是因为locale 的设置导致 shell 的stdin/stdout/stderr 的默认编码为ascii,当用ascii编码去解释python3默认unicode编码的时候,自然会有问题
问题解决
python3 的解决方式是 容器在初始化时候 需要设置shell的stdin/stdout/stderr 的默认编码方式为 utf-8,需要重启容器
# docker run 方式
docker run -e PYTHONIOENCODING=utf-8 m_container:latest my-python3
# docker-compose 方式
environment:
- PYTHONIOENCODING=utf-8

本文介绍了解决 Docker 的 Python 容器中执行打印操作时遇到的 Unicode 编码错误的方法。通过设置默认编码为 utf-8 来确保正确处理非 ASCII 字符。

496

被折叠的 条评论
为什么被折叠?



