pandas(待完善) | to_csv中文亂碼

起因

今天在處理工作時,需要將結果從hive讀出,並保存爲csv格式,然後下載。可以下載後用excel打開發現出現亂碼,非我想要的。

解決方案

參考了https://blog.csdn.net/zhuzuwei/article/details/80890007的博文,在此表示感謝。pandas官網
我們看下pandas官網對參數encoding 的解釋,默認爲utf-8,就是說 在我們不給指定時,就已經默認選擇了utf-8編碼格式。

這裏我使用的是代碼格式爲utf_8_sig

df.to_csv("data.csv",encoding="utf_8_sig")

比較utf-8與utf_8_sig的差異

  • utf-8
    utf-8 是以字節爲編碼單元,它的字節順序在所有系統中都是一樣的,沒有字節序問題,因此它不需要BOM,所以當用utf-8編碼方式讀取帶有BOM的文件時,它會把BOM當做是文件內容來處理

  • uft-8-sig
    uft-8-sig中sig全拼爲 signature 也就是"帶有簽名的utf-8”,因此"utf-8-sig"讀取帶有BOM的"utf-8文件時"會把BOM單獨處理,與文本內容隔離開

此處待完善和進一步理解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章