MAC 下 Excel打開UTF-8格式的文件亂碼


為了識別 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字符。用在網頁上可以同一頁面顯示中文簡體繁體及其它語言(如日文,韓文)。

 

https://blog.csdn.net/wodatoucai/article/details/46970347

 

https://blog.csdn.net/Sukie_csdn/article/details/78752969?utm_source=blogxgwz0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM