👋
ExcelでCSVを開いた時の文字化けを解決する(Mac)
問題
UTF-8エンコードで保存したcsvファイルをExcelで開くと文字化けする。
CSVデータは下記のとおり。
csv-test.csv
というファイル名で保存。
# シャープはコメント行だよ
# データの例
# 商品ID,購入者,備考
# 1011,ドラ○もん,未来デパート
商品ID,購入者,備考
1012,ドラ○,メロンパン
Mac版Excel
Windows版Excel
原因
ExcelでUTF-8のcsvを開く場合、BOM付き UTF-8 で保存する必要がある。
最近のエディタであれば、保存形式を指定できると思うので保存し直すのが良いですね。
対応
ここでは、nkf
コマンドを使ってBOM付きUTF-8に変換したいと思います。
まずは、nkf
コマンドをインストール
brew install nkf
文字化けするファイルの現状の文字コードを確認
nkf --guess csv-test.csv
コマンドを実行すると下記の結果が表示されてBOM付きでないことがわかります。
UTF-8 (LF)
ちなみに、file
コマンドがインストールされている場合、file csv-test.csv
を実行することでも結果を確認できます。
csv-test.csv: Unicode text, UTF-8 text
BOM無しUTF-8をBOM付きUTF-8に変換します。
nkf --overwrite --oc=UTF-8-BOM csv-test.csv
変換結果を確認してみましょう!
nkf --guess csv-test.csv
コマンド
UTF-8 (BOM) (LF)
file csv-test.csv
コマンド
csv-test.csv: Unicode text, UTF-8 (with BOM) text
Mac版Excel
Windows版Excel
文字化けせずに閲覧できることが確認できました!
Discussion