当上传具有非ASCII字符的文件时,出现UnicodeEncodeError:
Exception Type: UnicodeEncodeError at /admin/studio/newsitem/add/
Exception Value: 'ascii' codec can't encode character u'\xf8' in position 78: ordinal not in range(128)
参见full stack trace。
我使用MySQL,nginx和FastCGI运行Django 1.2。
这是根据Django Trac database修复的问题,但是我仍然有问题。欢迎提供有关如何修复的任何建议。
编辑:这是我的图像字段:
image = models.ImageField(_('image'), upload_to='uploads/images', max_length=100)
最佳答案
对于使用Supervisor运行Django时遇到此问题的任何人,解决方案是添加例如Supervisor配置的supervisord
部分中的以下内容:
environment=LANG="en_US.utf8", LC_ALL="en_US.UTF-8", LC_LANG="en_US.UTF-8"
这为我在Debian Squeeze上运行的Supervisor 3.0a8中解决了问题。
还要确保Supervisor通过运行以下命令重新读取配置:
supervisorctl reread
supervisorctl restart myservice
(感谢@Udi)
对于新贵,请添加
/etc/init/myservice.conf
:env LANG="en_US.utf8"
env LC_ALL="en_US.UTF-8"
env LC_LANG="en_US.UTF-8"`
(感谢@Andrii Zarubin;有关更多信息,请参见Upstart文档中的Environment Variables)
关于django - UnicodeEncodeError: 'ascii'编解码器无法编码字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3715865/