在平時打開CSV文件或者將CSV文件導(dǎo)入數(shù)據(jù)庫的時候,經(jīng)常遇到文檔中的中文顯示亂碼,主要問題就是編碼出現(xiàn)了問題。
在簡體中文Windows操作系統(tǒng)中,ANSI 編碼代表 GB2312編碼,有的CSV文件從網(wǎng)頁上導(dǎo)出時默認(rèn)是ANSI編碼,而系統(tǒng)默認(rèn)打開是UTF8編碼,導(dǎo)致打開后中文出現(xiàn)亂碼。
遇到這種問題我們不要慌,最簡單的方法是將CSV文件用TXT打開,然后另存為,在保存按鈕的左側(cè)可以修改CSV文件的編碼方式,修改后再用Excel打開CSV,中文就恢復(fù)正常了。
但遇到多個文件或文件過大時,就不適合這樣一個一個修改了。
經(jīng)多次摸索,我搞定了C#程序自動轉(zhuǎn)換編碼的小程序,可以一
次自動轉(zhuǎn)換多個CSV文件或TXT文件的編碼,程序界面如下。感興趣的小伙伴可以到我的CSDN下載使用:CSV或TXT文檔的UTF8和ANSI編碼轉(zhuǎn)換-CSDN博客
選擇多個文件后,程序?qū)⒖焖偻瓿删幋a轉(zhuǎn)換
在Excel中直接打開csv文件,如下圖所示:
群中提問:
看上去確實(shí)頭大,對于爬蟲初學(xué)者來說,這個亂碼擺在自己面前,猶如攔路虎一般難頂。不過別慌,小編在這里給大家整理了兩種方法,專門用于針對CSV文件亂碼的,希望大家在后面再次遇到這樣亂碼的問題,在此處可以得到靈感!
其實(shí)解決問題的關(guān)鍵點(diǎn)就是在于一點(diǎn),就是編碼的轉(zhuǎn)換。這里例舉兩種方法,肯定還有其他的方法的,也歡迎大家在評論區(qū)諫言。
方法一:notepad++打開
因?yàn)閏sv文件本質(zhì)上也是文本文件,本身用notepad++打開csv文件是可以直接打開,不會亂碼的。如果在網(wǎng)絡(luò)爬蟲的時候,指定了存儲格式為utf-8編碼,那么該csv文件用notepad++打開是沒啥問題的。
f = open('filename.csv', mode='a', encoding="utf-8")
csvwriter = csv.writer(f)
如下圖所示:
因?yàn)槲以次募旧砭褪琼n語和日本語,所以看到的就是這個了,上圖絕不是亂碼哈,別誤導(dǎo)了大家,嘻嘻!
方法二:Excel轉(zhuǎn)換
這個方法稍微復(fù)雜一些,但是比較好理解,對于初學(xué)者來說,還是比較好接受的,直接在Excel中進(jìn)行操作,步驟如下。
1)打開一個Excel文件,之后依次點(diǎn)擊“數(shù)據(jù)”-->“從文本/CSV”,如下圖所示。
2)之后選擇需要加載的CSV文件,然后會自動彈出下圖
從這里看的是原始文件,確實(shí)是亂碼的存在,接下來需要稍微設(shè)置下就可以了。
3)文件原始格式設(shè)置為“無”或者你的原始編碼“UTF-8”;分隔符默認(rèn)是逗號;數(shù)據(jù)類型檢測選擇基于整個數(shù)據(jù)集,最后選擇右下方的加載,如下圖所示。
4)之后稍等片刻,CSV文件就會自動加載到Excel,如下圖所示。
因?yàn)槲以次募旧砭褪琼n語和日本語,所以看到的就是這個了。
5)在Excel中的顯示,如下圖所示:
看上去還是比較清爽的,如此一來,中文亂碼的問題就迎刃而解了。之后你就可以進(jìn)行進(jìn)一步的轉(zhuǎn)存為標(biāo)準(zhǔn)的Excel文件或者進(jìn)行數(shù)據(jù)處理都可以。
我是Python進(jìn)階者。本文基于粉絲提問,針對CSV文件在Excel中打開后亂碼問題,給出了兩種亂碼解決方法,順利幫助粉絲解決了問題。雖然文中例舉了兩種方法,但是小編相信肯定還有其他的方法的,也歡迎大家在評論區(qū)諫言。
小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過程中,有遇到任何問題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。