為什麼excel不能正確處理utf8 csv?
01-27
我遇到的問題就是 寫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-automaticallyms官方回答: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 |