Кодек utf8 не может декодировать байты: неподдерживаемый диапазон кода Unicode - PullRequest
1 голос
/ 27 ноября 2011

Я попытался открыть html-страницу, содержащую текст в Unicode, используя django, и получил следующее:

UnicodeDecodeError at /my_page.html
'utf8' codec can't decode bytes in position 28283-28287: unsupported Unicode code range
Request Method: GET
Request URL:    http://mysite.com/my_page.html
Django Version: 1.2.4
Exception Type: UnicodeDecodeError
Exception Value:    
'utf8' codec can't decode bytes in position 28283-28287: unsupported Unicode code range
Exception Location: /usr/local/lib/python2.6/encodings/utf_8.py in decode, line 16
Python Executable:  /usr/local/bin/python
Python Version: 2.6.5

Страница была создана (не убивайте меня) MS Word, но когда я сохранилэто я удостоверился, что это было установлено в utf8.Также файл имеет следующий тег в заголовке:

<meta http-equiv=Content-Type content="text/html; charset=utf-8">

Мне нужно сохранить Unicode, так как страница не на английском языке.Что я могу сделать, чтобы django представил страницу?
Почему django заботится, а не просто дает браузеру справиться с этим? (Локально, конечно, со страницей все в порядке)

Может быть, потому чтоДжанго пытается обработать эту страницу как шаблон?Я использовал следующее в urls.py для перенаправления на сам файл:

(r'(.+).html$', 'django.views.generic.simple.direct_to_template'),

1 Ответ

2 голосов
/ 27 ноября 2011

Вы уверены, что файл действителен? Это не первый раз, когда MS Word создает неверные данные. И если есть символы, которые не являются допустимыми Unicode, это хорошо объяснило бы эту ошибку. Посмотрите на данные байты, если они разумны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...