вторник, 12 марта 2019 г.

django, apache и русские имена файлов

При загрузке файла с кириллицей в имени, выбрасывает ошибку
'ascii' codec can't encode characters in position
Это происходит из-за apache.

Копипаста из оф доки
http://djbook.ru/rel1.8/howto/deployment/wsgi/modwsgi.html#if-you-get-a-unicodeencodeerror

Если вы воспользовались настройками стандартной интернационализации Django и позволили пользователям загружать файлы, то должны убедиться, что среда для запуска Apache настроена для обработки не ASCII символов.Если это не так, будет возбуждено исключение UnicodeEncodeError при вызове функций, подобных os.path с именами файлов, содержащими отличные от ASCII символы.

Чтобы избежать проблем, среда, в которой запущен Apache, должна содержать параметры, аналогичные следующим:

export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'

Обратитесь к документации вашей операционной системы, чтобы подобрать соответствующий синтаксис и настроить расположение конфигурационных файлов; /etc/apache2/envvars является общей для Unix-like систем. После внесения соответствующих изменений перезапустите Apache.

Комментариев нет:

Отправить комментарий