標籤:

為什麼excel不能正確處理utf8 csv?

我遇到的問題就是 寫BOM頭能正確打開並顯示,但excel打開編輯再保存後會丟掉編碼信息。

我覺得excel應該像一些文本編輯器那樣保留BOM信息才比較合理。

再添加一些stackoverflow的討論:

http://stackoverflow.com/questions/4221176/excel-to-csv-with-utf8-encoding

http://stackoverflow.com/questions/6002256/is-it-possible-to-force-excel-recognize-utf-8-csv-files-automatically

ms官方回答:

http://answers.microsoft.com/en-us/office/forum/office_2013_release-excel/how-can-i-save-a-csv-with-utf-8-encoding-using/12801501-c1e4-4a64-80d9-96b680b64cfe

------------

從事遊戲開發的可能會了解,策劃都愛用excel拉數據。功能還是很贊的,最近要國際化,改utf8發現導表程序有問題,就吐槽一下。


因為微軟系列軟體是需要有bom頭才視作utf8處理的, @vczh的記事本保存為utf8時會自動添加bom頭。

對於沒有bom頭的,會使用系統字符集處理(我猜),簡體中文是代碼頁936,基本相當於GBK。

=============update=============

用excel 2007測試了一下

ANSI:

無論如何當作GBK打開

UTF-8 without BOM:

無論如何當作GBK打開

UTF-8 with BOM:

雙擊打開視作GBK,使用菜單打開出現文本導入嚮導


這不是excel的問題,是csv的問題。

本身不存在utf8 csv這種東西。csv這種格式本身沒有嚴格的規範,支持多國語言編碼基本無解。寫BOM頭也沒用,excel打開編輯再保存後會丟掉編碼信息。

處理非英文字元還是老老實實用.xlsx吧。


方法已經找到。

1 用editplus 或類似編輯器打開,提示選擇一個編碼,選擇UTF-8+BOM。(不要選UTF-8)

2 正常打開後,再次保存

3 用excel打開

4 完美


我用記事本寫了一個中文csv另存為UTF-8用excel打開表示沒有任何問題


推薦閱讀:

Excel里常見的錯誤值分別代表什麼意思?
Excel 單元格中的下三角箭頭是做什麼用的?如何實現?
python如何對excel表格指定內容查找?
怎麼讓excel不轉換為科學計數法?

TAG:MicrosoftExcel |