Mac下生成CSV檔案,用Excel開啟時經常會遇到中文亂碼的問題。例如下圖所示,有一個檔案“users.csv”,裡面的內容是中文,並且選中檔案後點擊空格預覽,也能正常顯示中文。但用Excel開啟時,就變成一堆亂碼。如下圖所示:究其原因是Mac下文字的預設編碼是UTF-8,而Excel對中文的處理是GBK編碼。(聽不懂?我只是在胡說八道罷了,繼續往下看解決方案!)。1)首先開啟Mac下自帶的“Automator”。如下圖所示:2)點選左下角的“新建文稿”按鈕。3)選擇服務型別4)建立Shell指令碼在左上角的輸入框中輸入“Shell”,看到“執行Shell指令碼”這一項將“執行Shell指令碼”這一項用滑鼠拖拽到右邊的空白區域,鬆開滑鼠就能看到如下圖所示的介面“服務”收到選定的,這一項選擇“文稿”位於,這一項選擇“Finder.app”Shell,這一項選擇“/bin/bash”傳遞輸入,這一項選擇“作為自變數”文字框中輸入如下程式碼:for f in "$@"; do if [ -f "$f" ]; then iconv -s -c -f UTF8 -t GBK "$f" > /tmp/iconv.utf8.gbk.tmp mv /tmp/iconv.utf8.gbk.tmp "$f" fidone【原來的備份:for f in "$@"doecho "$f"done】5)點選選單“檔案”-“儲存”,為服務取一個名字,例如“CSV檔案編碼轉換”6)關閉“Automator”。在Finder中找到之前的“users.csv”,右擊滑鼠,就能看到右擊選單中多出了一項“CSV檔案編碼轉換”,如下圖所示:7)點選這一項,等待數秒(右上角會出現一個小齒輪,並快速消失),再用Excel重新開啟,就會看到轉換好的檔案
原因:Mac預設的編碼是utf-8,utf-8編碼的檔案,用utf-8解碼才會正確顯示。而Mac下的excel並不支援utf-8,一般支援GBK編碼的檔案,用GBK解碼utf-8編碼的檔案,所以會出錯。
方法:
(1)最簡單的方法是,用numbers開啟,然後匯出為excel檔案
(2)自己寫一個shell指令碼,將UTF8編碼的檔案轉換成GBK編碼的檔案
網上教程很多,貼一個比較詳細的教程圖,原文連結:Mac下CSV中文亂碼問題解決方法_redraiment_新浪部落格
Mac下生成CSV檔案,用Excel開啟時經常會遇到中文亂碼的問題。例如下圖所示,有一個檔案“users.csv”,裡面的內容是中文,並且選中檔案後點擊空格預覽,也能正常顯示中文。但用Excel開啟時,就變成一堆亂碼。如下圖所示:究其原因是Mac下文字的預設編碼是UTF-8,而Excel對中文的處理是GBK編碼。(聽不懂?我只是在胡說八道罷了,繼續往下看解決方案!)。1)首先開啟Mac下自帶的“Automator”。如下圖所示:2)點選左下角的“新建文稿”按鈕。3)選擇服務型別4)建立Shell指令碼在左上角的輸入框中輸入“Shell”,看到“執行Shell指令碼”這一項將“執行Shell指令碼”這一項用滑鼠拖拽到右邊的空白區域,鬆開滑鼠就能看到如下圖所示的介面“服務”收到選定的,這一項選擇“文稿”位於,這一項選擇“Finder.app”Shell,這一項選擇“/bin/bash”傳遞輸入,這一項選擇“作為自變數”文字框中輸入如下程式碼:for f in "$@"; do if [ -f "$f" ]; then iconv -s -c -f UTF8 -t GBK "$f" > /tmp/iconv.utf8.gbk.tmp mv /tmp/iconv.utf8.gbk.tmp "$f" fidone【原來的備份:for f in "$@"doecho "$f"done】5)點選選單“檔案”-“儲存”,為服務取一個名字,例如“CSV檔案編碼轉換”6)關閉“Automator”。在Finder中找到之前的“users.csv”,右擊滑鼠,就能看到右擊選單中多出了一項“CSV檔案編碼轉換”,如下圖所示:7)點選這一項,等待數秒(右上角會出現一個小齒輪,並快速消失),再用Excel重新開啟,就會看到轉換好的檔案