我在带有一些西里尔项目的docker容器中运行python 3.6 + gunicorn + django 2.0.5,这就是当我尝试使用Django在控制台中记录西里尔字符串时看到的。
'ascii' codec can't encode character '\u0410' in position 0: ordinal not in range(128)
这也是shell中发生的事情
Python 3.6.5 (default, May 3 2018, 10:08:28)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> :�ириллица
同时,当我在docker容器外运行python 3.5时,一切正常:
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> Кириллица
有什么想法可以使cyrillic字符串在docker内部的python 3.6正常工作吗?
答案 0 :(得分:1)
在python代码的第一行中使用# -*- coding: utf-8 -*-
。
然后在您的Dockerfile
中添加:
ENV PYTHONIOENCODING = utf-8