python 中文轉碼 Excel讀csv

2022-08-29 11:21:12 字數 831 閱讀 3005

大家都知道excel讀csv用的是ascii編碼,我認為,ascii沒有中文,所以這裡指的應該是utf-8.

我遇到的問題是這樣的,unity專案只能用txt檔案,有一堆資料表用txt的文件儲存下來了,現在要轉回excel表。我利用python把txt的內容讀出來然後生成csv檔案,因為excel能匯入csv檔案。後來發覺用excel開啟的話中文內容會顯示亂碼。網友的說法是用文字文件開啟,然後另存為ascii格式。這種方法我用了,果然有效,不過這個文字編輯器不支援命令列操作,不能完成自動化操作。

我用line = line.decode('gbk')這行**,報錯了。然後嘗試line.decode('gbk','ignore'),再line.encode('utf-8','ignore'),發現普通編輯器開啟也變成亂碼了。

仔細想一想,decode的作用就是把其它編碼格式轉換為unicode(utf-16),encode就是從萬能的unicode轉成其它格式。我想,先保證文字能正確轉成unicode吧,如果decode('gbk')會報錯的話,會不會它本來就不是gbk呢。decode('utf-8')不報錯,不用加ignore引數。然後我再encode('utf-8'),發現是亂碼,我突然間有種預感,python能正常顯示中文的編碼,excel卻不能。我試試先輸出純淨的gbk,因為之前decode('utf-8')後,得到了純淨且萬能的unicode編碼,懷著試一試的態度,用excel開啟,居然能正常顯示中文。我之前的思路一直是把gbk轉成utf-8,而事實上是excel能顯示gbk,不能顯示utf-8中文,我暈了。

最終**如下:

line = line.decode('utf-8')

line = line.encode('gbk')

Python中特殊字元轉中文 轉碼

1 u7cd6 u5de7 u514b u529b 轉中文,這裡需要把 變為 轉變後就是 u7cd6 u5de7 u514b u529b 這樣就變成了unicode編碼了,然後用 u7cd6 u5de7 u514b u529b encode utf 8 decode unicode escape 就...

中文轉碼問題總結

編碼基礎知識 iso 8859 1 iso 8859 1 的較低部分 從 1 到 127 之間的 iso 8859 1 的較高部分 從 160 到 255 之間的 因此只能表示一些數字,英文本母和西歐語言 希臘語 泰語 阿拉伯語 希伯來語對應的文字元號 單位元組,即乙個位元組對應乙個編碼,不能編碼漢...

VLC 中文路徑轉碼問題

最近用mfc編寫呼叫libvlc的程式時碰到中文路徑不能開啟的問題,憤悶了兩天終於給解決了,在這裡貼出來希望給那些遇到轉碼問題的人一點幫助。主要問題是編碼方式不對,現在程式主要是用unicode碼,我遇到的libvlc預設為utf8,這就在遇到中文是需要轉為utf8。我遇到的主要是cstring轉為...