я могу получить подобную ошибку (упоминая же значение байта) делает это:
>>> 'å'.encode('latin-1')
b'\xe5'
>>> _.decode('utf-8')
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
_.decode('utf-8')
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe5 in position 0: unexpected end of data
Это означает, что ваши данные кодируются в Latin-1, а не UTF-8. В общем, есть два решения: если вы контролируете свои входные данные, перезагрузите его как UTF-8. В противном случае, когда вы читаете данные в Python, установите кодировку в латинский-1. Для шаблона django вы должны иметь возможность использовать первый - используемый вами редактор должен иметь опцию «кодирование» где-то, изменить его на utf-8, сохранить и все должно работать.
Вы уверены, что ваши данные на самом деле в UTF-8? – BrenBarn
Похож на iso-8859-1 вместо utf-8. – robertklep
Интересно, как выглядят базовые байты вашего шаблона (например, из 'hexdump'). Ваш символ 'å' является кодеком Unicode ** ** e5, но в UTF-8 фактические байты -' c3 a5'. Смотрите: http://hexutf8.com/?q=#å, если Python встречается с байтом 'e5', это будет ошибкой, так как это не допустимая последовательность байтов UTF-8: http://hexutf8.com/?q=e5 – jar