技術問答網站上看到有人為了解決 Microsoft Excel 打開 CSV 檔案,遇到亂碼的問題,將檔案編碼改成「大五碼」(Big5)。轉碼成大五碼的風險是,常見的異體字會變成問號,造成資訊遺失。正確的解決方式是維持 CSV 使用 UTF-8 編碼,並且在檔首加上 BOM 符號 (Byte Order Mark)。
Photo by Suzy Hazelwood on StockSnap |
問題狀況
點選兩下 CSV 檔案,直接使用 Microsoft Excel 開啟,有時候會遇到亂碼文字的狀況:
不合適的解決方法
將 CSV 檔案編碼從 UTF-8 改成「大五碼」(Big5),常見的異體字或沒有收錄在 Big5 字碼範圍的字將會變成問號,造成資訊遺失。異體字例如:「游錫堃、王建煊、張栢芝、陶喆」轉成大五碼後變成「游錫?、王建?、張?芝、陶?」
解決方法
1. 正確但不太方便的解決方法
維持 CSV 使用 UTF-8 編碼:早期 Excel 版本也適用
❌ 使用者不能點選兩下 CSV 檔案,直接使用 Microsoft Excel 開啟 CSV 檔案的方式
⭕ 使用者採用匯入文字檔案的方式,再選擇檔案內容 UTF-8 編碼,才能看到正確文字內容。操作詳見 解決CSV檔亂碼 (Microsoft Excel 2007 或 OpenOffice.org 3.2) 或微軟說明文件 匯入或匯出文字 (.txt 或 .csv) 檔案。
2. 正確並且快速方便的解決方法
維持 CSV 使用 UTF-8 編碼,並且在檔首加上 BOM 符號:如果缺少 BOM 符號,微軟視窗程式無法識別是 UTF-8 編碼而造成錯誤。
⭕ 使用者可以點選兩下 CSV 檔案,直接使用 Microsoft Excel 開啟 CSV 檔案。
⭕ 也可以使用 Excel 匯入文字檔案的方式。
Windows 記事本如何將 CSV 檔案檔首加上 BOM 符號的步驟說明:
(1) Windows 記事本右下方,會顯示文字編碼 ANSI 或 UTF-8
如果右下方不是顯示 UTF-8,而是 ANSI ,代表是「大五碼」(Big5) 的檔案,如果沒有出現異體字變成問號的狀況,則可以進行後續動作。如果出現異體字變成問號的狀況,則需要從原始資料重新產生 CSV 檔案。
(2) 點選選單「檔案」--> 「另存為」
(3) 「編碼」選擇「具有 BOM 的 UTF-8」後,另存成新檔案
(4) 點選兩下 CSV 檔案,直接使用 Microsoft Excel 開啟 CSV 檔案。可以看到檔案內容是正常,而不是亂碼文字。
如果使用免費的自由軟體 Notepad++ ,則可以在上方選單「編碼」找到「轉換至 UTF-8 碼格式(BOM 檔首)」選項
軟體版本
1. 正確但不太方便的解決方法 測試可用的版本
- Windows 版 Microsoft Excel 2007
- Mac 版 Microsoft Excel for Mac 2011
- Mac 版 Microsoft Excel on Mac 版本 16.20
- Mac 版 Microsoft Excel 365 版本 16.49
2. 正確並且快速方便的解決方法 測試可用的版本
- Windows 版 Microsoft Office 標準版 2016
- Mac 版 Microsoft Excel 2011 版本 14.7.7
- Mac 版 Microsoft Excel 365 版本 16.49
測試有問題的版本
- 👻 有網友反應 Excel 2003 版本有問題,再請自行確認
相關文章
- PHP 程式語言 php - Adding BOM to CSV file using fputcsv - Stack Overflow
- Python 程式語言 Adding BOM (unicode signature) while saving file in python - Stack Overflow 或 [python] 解決生成csv file編碼問題(with BOM) | JysBlog
- 位元組順序記號 - 維基百科,自由的百科全書
- 大五碼 - 維基百科,自由的百科全書
- Text appears garbled when opening a task CSV file | Knowledge Base - Teampel
- 匯入或匯出文字 (.txt 或 .csv) 檔案 (機器翻譯) - Excel
- 解決 Mac 系統匯入中文 CSV 檔案遇到亂碼問題 (Excel on Mac 版本 16.20, Office 365)
我首選的編輯器是 Codelobster
回覆刪除