2016-11-30 2 views
0

У меня есть приложение Django производства, который бросает следующее сообщение об ошибке:Джанго - UnicodeEncodeError в производственной среде с Apache

'ascii' codec can't encode character u'\xe9' in position 97: ordinal not in range(128) 
Unicode error hint 
The string that could not be encoded/decoded was: P [email protected] 

P Gen @ рика является частью имени загруженного файла.

Код, где появляется ошибка заключается в следующем:

files_list = [uuid_temp_files + '/' + f for f in os.listdir(uuid_temp_files) if os.path.isfile(os.path.join(uuid_temp_files, f))] 

В моей машине развития все в порядке, я могу добавить акцентированные имена файлов с именами файлов.

Любые подсказки о причинах этой ошибки в производственной среде? Может быть, какая-то конфигурация Apache?

С наилучшими пожеланиями,

+0

Я предполагаю, что вы используете машину python 3? – Sayse

+0

Использует Python2.7 –

+1

Почему вы не используете 'os.path.join' в левой части вашего понимания списка? –

ответ

1

Проблема скорректированные с:

# CentOS use /etc/sysconfig/httpd to config environment variables. 
# 
# By default, the httpd process is started in the C locale; to 
# change the locale in which the server runs, the LANG 
# variable can be set. 
# 
# LANG=C 
LANG=en_US.UTF-8 # you can change to your locale. 

В файле "/ и т.д./sysconfig/HTTPD" изменение "LANG = C", чтобы "LANG = en_US.UTF-8" затем перезапустите Apache.

Выполнено.

Смежные вопросы