2014-08-16 5 views
0

Django 1.6 Python 3 Nginx, uWsgiДжанго: 'ASCII' кодек не может декодировать байт 0xC3 в позиции 1035: порядковый не в диапазоне (128)

Есть еще просмотреть темы об этой ошибке, но решения для меня неприменимы.

У меня есть веб-приложение, в котором можно импортировать XML-файл в tar-архив для целей импорта.

При разработке на моей локальной машине приложения с «python manage.py runningerver» процесс импорта работает безупречно. При запуске приложения на VServer с Nginx и uWsgi, я получаю эту ошибку:

UnicodeDecodeError at /sync/upload/ 
'ascii' codec can't decode byte 0xc3 in position 1035: ordinal not in range(128) 

ошибка происходит на этой последней строки, написанной мной и код запуска позади оттуда:

xml = f.read() <- My line 
return codecs.ascii_decode(input, self.errors)[0] 

С все это wokrs на моей системе, но не на vps, я предполагаю, что проблема - это какая-то проблема конфигурации. До сих пор я пытался установить LANG и LC_ALL перед запуском nginx, а также предоставить атрибут encoding = 'utf-8', когда «open (xmlfile) как f». Плюс много разных подходов, пытающихся кодировать вручную.

Так что знаю, что у меня нет вариантов.

Я работаю из Швейцарии, используя машину en_US.UTF-8 ArchLinux. VPS - это машина Debian, из которой я не знаю, как настроить кодировку по умолчанию, если это даже связано. Любая помощь приветствуется.

Спасибо и уважением, Адриан

ответ

0

Вы используете ascii_decode явно. Поэтому языковые настройки выходят за рамки. ascii_decode может декодировать байты в диапазоне 0..127. Но 0xc3 = 195> 127. Таким образом, вы тестируете свой сервер с другим файлом, который содержит байты со значениями> 127. Как правило, xml-считыватели берут байты, а не строки, поэтому декодирование не нужно, поскольку кодировка задается внутри xml- файл.

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

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