1. 程式人生 > >EXCEL開啟CSV檔案亂碼的解決方法

EXCEL開啟CSV檔案亂碼的解決方法

【故障現象描述】 從網頁上匯出資料檔案儲存為CSV格式的檔案,使用記事本開啟文字顯示沒有問題,使用EXCEL打開出現亂碼的情況。 【故障原因分析】 此種情況一般是匯出的檔案編碼的問題。在簡體中文環境下,EXCEL開啟的CSV檔案預設是ANSI編碼,如果CSV檔案的編碼方式為utf-8、Unicode等編碼可能就會出現檔案亂碼的情況。 【解決方法】 (1)設定office語言環境(以office 2003為例): 開始選單-Microsoft office- Microsoft office工具- Microsoft office 2003語言設定,將Microsoft office應用程式預設方式的語言設為“中文(簡體)”,這也是office 2003的預設設定。 (2)使用記事本開啟CSV檔案,檔案-另存為,編碼方式選擇ANSI: (3)儲存完畢後,用EXCEL開啟這個檔案就不會出現亂碼的情況: 【編碼方式講解】 (1)ANSI編碼 不同的國家和地區制定了不同的標準,由此產生了 GB2312, BIG5, JIS 等各自的編碼標準。這些使用 2 個位元組來代表一個字元的各種漢字延伸編碼方式,稱為 ANSI 編碼。在簡體中文系統下,ANSI 編碼代表 GB2312 編碼,在日文作業系統下,ANSI 編碼代表 JIS 編碼。 不同 ANSI 編碼之間互不相容,當資訊在國際間交流時,無法將屬於兩種語言的文字,儲存在同一段 ANSI 編碼的文字中。 當然對於ANSI編碼而言,0x00~0x7F之間的字元,依舊是1個位元組代表1個字元。這一點是ASNI編碼與Unicode編碼之間最大也最明顯的區別。例如上面演示的檔案中英文字母和數字並沒有出現亂碼的情況。 (2)Unicode編碼 Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字元編碼。它為每種語言中的每個字元設定了統一併且唯一的二進位制編碼,以滿足跨語言、跨平臺進行文字轉換、處理的要求。1990年開始研發,1994年正式公佈。隨著計算機工作能力的增強,Unicode也在面世以來的十多年裡得到普及。 Unicode是國際組織制定的可以容納世界上所有文字和符號的字元編碼方案。Unicode用數字0-0x10FFFF來對映這些字元,最多可以容納1114112個字元,或者說有1114112個碼位。碼位就是可以分配給字元的數字。UTF-8、UTF-16、UTF-32都是將數字轉換到程式資料的編碼方案。 (3)UTF-8編碼 UTF-8是UNICODE的一種變長字元編碼又稱萬國碼,由Ken Thompson於1992年建立。現在已經標準化為RFC 3629。UTF-8用1到6個位元組編碼UNICODE字元。用在網頁上可以同一頁面顯示中文簡體繁體及其它語言(如日文,韓文)。