解决python2.7 UnicodeDecodeError和UnicodeEncodeError问题
最近在項(xiàng)目中,讀取上傳的csv文件,并寫入時(shí),會(huì)報(bào)編碼問(wèn)題,
with open(origin_file_path, mode='wb')as f:for chunk in file_obj:f.write(chunk)UnicodeDecodeError: 'utf8' codec can't decode byte 0xc4 in position 0: invalid continuation byte
剛開(kāi)始以為是對(duì)方上傳的文本編碼格式有問(wèn)題,所以讓對(duì)方用Notepad++,打開(kāi)編輯后保存
剛開(kāi)始一段時(shí)間,沒(méi)有再出現(xiàn)錯(cuò)誤,最近,錯(cuò)誤再次發(fā)生,即使用上面說(shuō)的編輯器也沒(méi)用
with open(origin_file_path, mode='wb')as f:for chunk in file_obj:f.write(chunk.decode('gbk')后面考慮,可能是因?yàn)橛兄形?#xff0c;需要進(jìn)行g(shù)bk編碼,所以在寫入文件時(shí)我按gbk寫入后,發(fā)現(xiàn)問(wèn)題解決了,不會(huì)再報(bào)上面這個(gè)錯(cuò)誤
但是當(dāng)我把把更新的文件放到服務(wù)器上后,發(fā)現(xiàn),又報(bào)另外一個(gè)錯(cuò)誤錯(cuò)誤
UnicodeEncodeError: 'ascii' codec can't encode characters in position 42-57: ordinal not in range(128)
可能是因?yàn)閘inux默認(rèn)是utf-8編碼。所以報(bào)錯(cuò)
然后我又轉(zhuǎn)成utf-8,完美解決問(wèn)題,代碼如下
with open(origin_file_path, mode='wb')as f:for chunk in file_obj:f.write(chunk.decode('gbk').encode('utf-8'))?
?
總結(jié)
以上是生活随笔為你收集整理的解决python2.7 UnicodeDecodeError和UnicodeEncodeError问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Vue2.x 踩坑与总结
- 下一篇: python--列表与字典