我有一個問題,讀一個txt文件中的MySQL數據庫表中插入,TE狙擊這個代碼:急性拉丁字母:DjangoUnicodeDecodeError
文件包含在第一行:「aclaración」
archivo = open('file.txt',"r")
for line in archivo.readlines():
....body = body + line
model = MyModel(body=body)
model.save()
我得到一個DjangoUnicodeDecodeError:在8位
「UTF-8」編解碼器不能解碼字節:無效數據。您已通過'aclaraci \ xf3n'(類型'str') Unicode錯誤提示
無法編碼/解碼的字符串是:araci n。
我試圖body.decode('utf-8'),body.decode('latin-1'),body.decode('iso-8859-1')沒有解決方案。
你能幫助我嗎?任何提示都是合理的:)
感謝亞歷克斯,回答你的問題,在這裏:> manage.py殼 的Python 2.5.4(InteractiveConsole) >>> A = 'A' >>>一個 '\ XA0' >>>一個。解碼('iso-8859-1')。encode('utf-8') '\ xc2 \ xa0' >>> test = unicode(a) 回溯(最近一次調用最後一次): 文件「」第1行,在 UnicodeDecodeError錯誤:「ASCII」編解碼器不能在位置0解碼字節0XA0:順序不在範圍內(128) –
panchicore
2009-08-31 18:57:40
在'試驗= unicode的(一)'你隱含使用ASCII編解碼器,如錯誤信息很清楚地告訴你,所以當然失敗了。如果你知道在ISO-8859-1中編碼的a,使用'unicode(a,'iso-8859-1')'。如果您分配了編碼/解碼序列另一個變量的結果,說B,'的Unicode(B,「utf-8」)'然後會工作。等等,也許你只是調用編碼和解碼這種方式,而不是分配,然後使用他們的結果......?!記住字符串是不變的,所以方法調用不改變他們:他們返回結果(分配和使用它們 - !)。 – 2009-08-31 19:05:03