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
.
Если вы используете виртуальную среду, убедитесь, что вы настроили ее явно в виртуальной среде; так как она может не читать глобальные переменные.