当上传具有非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/

10-11 01:08