現在做輿情分析的相關項目,在數據處理的時候,發現了一個問題。將數據寫入到csv文件,用excel打開(默認)就會出現亂碼,如果將數據寫入到.xlsx文件就不會出現亂碼,因為csv是通用格式,所以我猜想是excel的問題,在網上baidu了一下,發現果然是這樣。
https://jingyan.baidu.com/article/ac6a9a5e4c681b2b653eacf1.html
CSV是逗號分隔值的英文縮寫,通常都是純文本文件。CSV格式是分隔的數據格式,有字段/列分隔的逗號字符和記錄/行分隔換行符。通常CSV文件可以用EXCEL正常打開,但是許多人都有這樣的經歷,使用EXCEL打開后,原本應該出現中文地方都變成亂碼了。這種情況怎么解決呢?如下圖:
出現這種情況怎么解決呢?我們首先來分析一下此種情況的內在原因。在簡體中文環境下,EXCEL打開的CSV文件默認是ANSI編碼,如果CSV文件的編碼方式為utf-8、Unicode等編碼可能就會出現文件亂碼的情況。
分析了原因后,一些人已經知道怎么解決了,但為方便初學者,這里還是用圖文並茂的方式講解一下解決步驟:
-
使用記事本打開CSV文件
-
點擊菜單:文件-另存為,編碼方式選擇ANSI
-
保存完畢后,再用EXCEL打開這個文件就不會出現亂碼的情況。
http://www.gaohaipeng.com/2251.html
解決Excel打開UTF-8編碼CSV文件亂碼的問題
前段時間用某軟件導出了一個CSV文件,需要在Excel中處理並打印,但是我直接用Excel打開這個CSV文件卻發現,文件中的所有中文字符都變成了亂碼,經過自己的嘗試,采用數據導入的方法解決了問題,后來又搜了一下,發現還有其他方法,數據導入只是其中一種而已。現在整理總結一下:
方法1、數據導入
打開 Excel,執行“數據”->“自文本”,選擇 CSV 文件,出現文本導入向導,選擇“分隔符號”,下一步,勾選“逗號”,去掉“ Tab 鍵”,下一步,完成,在“導入數據”對話框里,直接點確定。
導入之后,所有漢字顯示正常,亂碼問題解決。
方法2、先另存再打開
使用記事本打開CSV文件,“文件”->“另存為”,編碼方式選擇ANSI,保存完畢后,用EXCEL打開這個文件就不會出現亂碼的情況。
問題產生的原因
為什么excel打開utf-8存儲方式的文件會出現亂碼呢?因為excel打開文件時默認使用unicode的編碼方式(還有的網友說是默認以ANSI編碼方式打開,待考)。在Unicode基本多文種平面定義的字符(無論是拉丁字母、漢字或其他文字或符號),一律使用2字節儲存。恰恰utf-8是1字節的存儲方式,所以excel直接打開時會出現亂碼。
http://blog.csdn.net/yjpsunshine/article/details/50953577
產生背景
今天在用excel打開一個腳本生成的csv文件(存儲編碼格式為utf-8)時出現了亂碼情況,但是用WPS直接打開卻正常顯示。因為文件是要交給客戶的,office又是普遍使用的一枚辦公軟件,總不能讓客戶去安裝一個WPS吧。網上一番查閱后,眾說紛紜,因此特此記錄下自己所踩過的坑:
解決方案
- 用記事本打開csv文件,另存為Unicode格式
- 之后用excel打開CSV文件,注意此時該文件的編碼已是Unicode
- 若出現每一行所有字段在一個單元格的情況,解決步驟接着看下面
- 重新打開excel,執行”數據”->”自文本”->選擇csv文件->”導入”->出現文本導入導向對話框->”下一步”->取消Tab鍵,選中逗號作為分隔符號->”確定”
- 待轉換成功,則會在excel中正常顯示
原因分析
Excel默認打開文件的編碼格式是Unicode,所以當文件里面同時含有中文、韓文、西歐字符等等的時候,此時若文件為非Unicode格式,由於編碼格式不一致,將會出現亂碼問題。