带有acute的拉丁字母:DjangoUnicodeDecodeError

时间:2009-08-31 00:11:45

标签: python django utf-8 character-encoding

我在读取要在mysql db表中插入的txt文件时遇到问题,请仔细阅读此代码:

文件包含第一行:“aclaración

  

archivo = open('file.txt',“r”)
  对于archivo.readlines()中的行:
  .... body = body + line
  model = MyModel(body = body)
  model.save()

我得到一个DjangoUnicodeDecodeError:

'utf8'编解码器无法解码位置8中的字节:无效数据。你通过'aclaraci \ xf3n'(输入'str') Unicode错误提示

无法编码/解码的字符串是:araci n。

我尝试了body.decode('utf-8'),body.decode('latin-1'),body.decode('iso-8859-1'),没有解决方案。

你能帮帮我吗?任何提示都是相关的:)

1 个答案:

答案 0 :(得分:5)

根据{1'的\xf3代码判断,数据看起来好像是用ISO-8859-1(或某些近亲)编码的。所以body.decode('iso-8859-1')应该是一个有效的Unicode字符串(你没有指定“没有解决方案”的含义 - 你得到什么错误信息,以及在哪里?);如果你需要的是一个utf-8编码的字节串,body.decode('iso-8859-1').encode('utf-8')应该给你一个!