0

我收到一个 UnicodeDecodeError,

'utf8' codec can't decode byte 0xe5 in position 1923: invalid continuation byte

我在模板中使用了丹麦语字母“å”。我该如何解决这个问题,然后我可以在我的 Django 项目和数据库中使用非英文字母?

4

2 回答 2

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 模板,您应该能够使用第一个 - 您使用的编辑器应该在某处有一个“编码”选项,将其更改为 utf-8,重新保存,一切都应该工作。

于 2013-04-14T06:39:02.327 回答
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() 
于 2014-11-30T01:09:26.103 回答