我收到了UnicodeDecodeError,
'utf8' codec can't decode byte 0xe5 in position 1923: invalid continuation byte
我在模板中使用丹麦字母“å”。如何解决问题,然后我可以在我的Django项目和数据库中使用非英文字母?
答案 0 :(得分:2)
我可以得到类似的错误(提到相同的字节值):
>>> 'å'.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中读取数据时,请将编码设置为latin-1。对于django模板,您应该能够使用第一个 - 您使用的编辑器应该在某处具有'encoding'选项,将其更改为utf-8,重新保存,并且一切都应该有效。
答案 1 :(得分:0)
这帮助了我https://stackoverflow.com/a/23278373/2571607
基本上,打开C:\ Python27 \ Lib \ mimetypes.py
替换
‘default_encoding = sys.getdefaultencoding()’
与
if sys.getdefaultencoding() != 'gbk':
reload(sys)
sys.setdefaultencoding('gbk')
default_encoding = sys.getdefaultencoding()