【发布时间】:2018-09-06 00:45:27
【问题描述】:
我最近将我的 Django 应用程序部署到了预设的托管服务器(Red Hat),并且在上传包含西里尔文符号(具体来说是俄语)但保存 CharFields 的图片后短暂使用后出现 UnicodeEncode 错误俄语中的数据工作得很好。
但是,相同的代码在我的个人计算机上运行没有缺陷(在 Ubuntu 和 Windows 上测试)。在服务器上进行文件编码检查后发现,主机上的默认系统编码是 ANSI,它是 ASCII 的扩展
此时,我联系了技术支持,他们声称这可能是 Django 故障,因为他们在服务器上使用 UTF-8 编码(那么 sys.getfilesystemencoding() 展示,从操作系统编码继承的是 ASCII? )
我的另一个怀疑是语言环境混乱
事实证明这是真的。
无论如何,有没有什么办法可以证明这是 Django 的错,可以通过 Python/Django hacks 修复,还是完全是服务器的错?
编辑:需要明确的是,这不是 VDS,这只是带有预设配置的常规托管,所以我无法完全控制环境设置,但是,我可以配置 .htaccess 文件和 .fcgi 脚本,所以我相信它是阿帕奇服务器
【问题讨论】:
标签: python django unicode locale file-encodings