Как уже говорилось ранее, это связано с локалью. Например, если вы используете gunicorn
для обслуживания django application
, у вас может быть скрипт init.d
(или, как я, скрипт runit), где вы можете установить локаль.
Чтобы решить UnicodeEncodeError с загрузкой файла, вставьте что-то вроде export LC_ALL=en_US.UTF8
в ваш скрипт, который запускает ваше приложение.
Например, это мое (с использованием gunicorn
и runit
):
#!/bin/bash
export LC_ALL=en_US.UTF8
cd /path/to/app/projectname
exec gunicorn_django -b localhost:8000 --workers=2
Кроме того, вы можете проверить свою локаль в своем шаблоне, используя это в вашем представлении:
import locale
data_to_tpl = {'loc': locale.getlocale(), 'lod_def': locale.getdefaultlocale()}
И просто отобразить {{loc}} - {{loc_def}}
в вашем шаблоне.
У вас будет больше информации о ваших региональных настройках! Это было очень полезно для меня.