Django、nginx、gunicorn和supervisor:上传非拉丁字符命名的文件时出现UnicodeEncodeError。

3
当我上传一些文件名不是拉丁字母的文件时,出现错误:
UnicodeEncodeError at /profiles/
'ascii' codec can't encode characters in position 39-41: ordinal not in range(128)

我尝试按照这里所述的方式更改了supervisor环境,但是没有起到作用。我在/etc/supervisor/supervisord.conf中添加了以下行:

[supervisord]
environment=LANG="ru_RU.utf8", LC_LANG="ru_RU.UTF-8", LC_ALL="ru_RU.UTF-8"
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)

当我将这行代码放入程序特定的配置文件时,它也没有开始工作。
我已经尝试弄清我的编码问题,因此我添加了这个变量到模板上下文中:
context['locale'] = sys.getfilesystemencoding()

在模板中显示“ANSI_X3.4-1968”,请问可以解释一下为什么更改环境没有解决问题吗?


你解决了这个问题吗?我在Ubuntu上也遇到了同样的问题。 - artem
你好@RankoR,我们刚刚转移到了Python 3 %) - Sergey Cherepanov
1个回答

3

请按照此处的描述,确保您已经完全重新启动了Supervisord。希望能对您有所帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接