文件打開亂碼

問題:今天在用excel打開監聽器寫入數據的csv格式的文件時,文件中的中文出現亂碼,用Nodepad++打開後,查看了一下格式,csv文件的格式是UTF-8無BOM格式編碼

解決辦法:將文件用Nodepad++打開-》格式-》轉爲UTF-8編碼格式或者ANSI編碼格式後保存,在通過excel打開中文就不是亂碼了



知識點:

爲了識別 Unicode 文件,Microsoft 建議所有的 Unicode 文件應該以 ZERO WIDTH NOBREAK SPACE字符開頭。這作爲一個”特徵符”或”字節順序標記(byte-order mark,BOM)”來識別文件中使用的編碼和字節順序(big-endian或little-endian),具體的對應關係見下表。
Bytes             Encoding Form
00 00 FE FF    UTF-32, big-endian
FF FE 00 00    UTF-32, little-endian
FE FF             UTF-16, big-endian
FF FE             UTF-16, little-endian
EF BB BF        UTF-8
       以UTF-8無BOM格式編碼,因此要想導出Microsoft Excel可以正常顯示的UTF-8的CSV文件,需要顯式的輸出BOM(EF BB BF,上表的最後一種類型),然後再輸出有效數據。
       那沒辦法,既然不支持,那只有將文件保存成能識別的格式,再用Excel打開吧!
       也有人說可以通過在文件頭部寫入UTF-8的BOM格式編碼標記,但這種方法相對比較複雜,而且需要藉助其他工具來完成文件的修改。所以不建議使用這種方法。具體可以百度。

【故障現象描述】
      從網頁上或別的系統導出數據文件存儲爲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字符。用在網頁上可以同一頁面顯示中文簡體繁體及其它語言(如日文,韓文)。


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