Django использует ANSI X3.Кодировка 4-1968 вместо UTF-8

Я запускаю сервер Ubuntu 14.04 с Django + Gunicorn + Nginx.

конфигурация Nginx содержит строку для кодировки utf-8.

вывод локали для пользователя "аукцион" (этот пользователь запускает сервер):

LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=en_US.utf8

кодировка файловой системы для этого пользователя:

sys.getfilesystemencoding()
'UTF-8'

но когда я вызываю тот же метод в представлении, он возвращает 'ANSI_X3.4-1968'.

Так, я не могу загрузить файлы с нелатинскими именами.

Я провел несколько дней погуглил решения, ничего не помогает.

Как это исправить?

1 ответов


это звучит так, как будто вы бежите в ошибка # 13643.

самый простой способ решить эту проблему-установить переменную среды PYTHONIOENCODING до utf-8.

Если вы используете виртуальную среду, убедитесь, что вы настроили ее явно в виртуальной среде; так как она может не читать глобальные переменные.