解决python2.7 UnicodeDecodeError和UnicodeEncodeError问题
生活随笔
收集整理的這篇文章主要介紹了
解决python2.7 UnicodeDecodeError和UnicodeEncodeError问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近在項目中,讀取上傳的csv文件,并寫入時,會報編碼問題,
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
剛開始以為是對方上傳的文本編碼格式有問題,所以讓對方用Notepad++,打開編輯后保存
剛開始一段時間,沒有再出現錯誤,最近,錯誤再次發生,即使用上面說的編輯器也沒用
with open(origin_file_path, mode='wb')as f:for chunk in file_obj:f.write(chunk.decode('gbk')后面考慮,可能是因為有中文,需要進行gbk編碼,所以在寫入文件時我按gbk寫入后,發現問題解決了,不會再報上面這個錯誤
但是當我把把更新的文件放到服務器上后,發現,又報另外一個錯誤錯誤
UnicodeEncodeError: 'ascii' codec can't encode characters in position 42-57: ordinal not in range(128)
可能是因為linux默認是utf-8編碼。所以報錯
然后我又轉成utf-8,完美解決問題,代碼如下
with open(origin_file_path, mode='wb')as f:for chunk in file_obj:f.write(chunk.decode('gbk').encode('utf-8'))?
?
總結
以上是生活随笔為你收集整理的解决python2.7 UnicodeDecodeError和UnicodeEncodeError问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue2.x 踩坑与总结
- 下一篇: CentOS 6.9 搭建 Presto