再次,UnicodeEncodeError(ASCII编解码器无法编码)

时间:2018-07-19 14:05:26

标签: python django unicode cyrillic

我在带有一些西里尔项目的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正常工作吗?

1 个答案:

答案 0 :(得分:1)

在python代码的第一行中使用# -*- coding: utf-8 -*-

然后在您的Dockerfile中添加:

ENV PYTHONIOENCODING = utf-8