当上传具有非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)
我使用MySQL,nginx和FastCGI运行Django 1.2。
根据Django Trac数据库,这是已解决的问题,但是我仍然有问题。欢迎提供有关如何修复的任何建议。
编辑:这是我的图像字段:
image = models.ImageField(_('image'), upload_to='uploads/images', max_length=100)
对于使用Supervisor运行Django时遇到此问题的任何人,解决方案是在supervisordSupervisor的配置部分中添加以下内容:
environment=LANG="en_US.utf8", LC_ALL="en_US.UTF-8", LC_LANG="en_US.UTF-8"
这为我在Debian Squeeze上运行的Supervisor 3.0a8中解决了问题。
在对此进行更多调查之后,我发现我尚未在我的主要Nginx配置文件中设置字符集:
http { charset utf-8; }
通过添加以上内容,问题消失了,我认为这是处理此问题的正确方法。