👋

ExcelでCSVを開いた時の文字化けを解決する(Mac)

2023/12/18に公開

問題

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