我正在使用 Django + Gunicorn + Nginx 运行 Ubuntu 14.04 服务器。
Nginx 配置包含 utf-8 字符集行。
用户“auction”的区域设置输出(该用户运行服务器):
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=en_US.utf8
该用户的文件系统编码:
sys.getfilesystemencoding()
'UTF-8'
但是当我在视图中调用相同的方法时,它返回“ANSI_X3.4-1968”。
因此,我无法上传非拉丁文件名的文件。
我花了几天谷歌搜索解决方案,没有任何帮助。
如何修复它?
这听起来像是你遇到了错误#13643 http://bugs.python.org/issue13643.
解决这个问题最简单的方法就是设置环境变量PYTHONIOENCODING
to utf-8
.
如果您使用的是虚拟环境,请确保在虚拟环境中明确设置;因为它可能无法读取全局变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)