拉丁字母重音:DjangoUnicodeDecodeError
我在读取一个txt文件并想把内容插入到mysql数据库表时遇到了问题,以下是代码的一部分:
文件的第一行内容是:"aclaración"
archivo = open('file.txt',"r")
for line in 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 个回答
5
从字符 \xf3
对应的 'ó' 来看,数据的编码方式很可能是 ISO-8859-1(或者类似的编码)。所以,使用 body.decode('iso-8859-1')
应该能得到一个有效的 Unicode 字符串(你没有说明“没有解决方案”是什么意思——你遇到了什么错误信息,在哪里出现的?);如果你需要的是一个 utf-8 编码的字节串,那么可以用 body.decode('iso-8859-1').encode('utf-8')
来得到!