MacのExcelでCSVファイルを開く際、ファイルの文字コードがUTF-8だった場合、以下の画像のように文字化けしてしまうことがあります。

画像:UTF-8の文字コードCSVファイルをExcelで開いて文字化け

テキストエディタでCSVファイルを開けば文字化けはしませんが、どうしてもExcelで開きたい時はありますよね。

この記事では、上記のように文字化けしないよう、CSVファイルの文字コードをUTF-8からShift-JISに変換する方法を3つ紹介します。

1. テキストエディタで変換する

Macにデフォルトで入っている「テキストエディット.app」を使用する方法です。
ファイルを複製し、別名保存時にエンコーディングを指定する、一番難しくない方法です。

画像:テキストエディット.app

しかし、以下のように「Shift JIS」の文字コードがグレーアウトして選択できなかったり、ファイル保存時にエラーがでて保存ができない場合があります。

画像:エンコーディング選択

画像:グレーアウトして選択できない

これは、ファイル内にいわゆる機種依存文字等があり、エンコードできない文字が含まれているためです。
その場合は以下の方法を試しましょう。

2. ターミナルからコマンドを使う方法

ターミナルはいわゆる黒い画面(CUI※)となり、すこしとっつきにくいかもしれませんが、慣れれば難しくはありません。

画像:ターミナルのアイコン

※CUI(Character User Interface)…主にテキスト入力のみで操作をするインターフェースのこと。
対して、マウス等を使いアイコンやボタンなどを操作する入力画面はGUI(Graphic User Interface)という。

2-1. iconvコマンドを使う

ファイルに対し、様々な国の文字コードに変換できるiconvコマンドを使います。

  1. ターミナルを起動し、該当のファイルがある階層にcdコマンドで移動します。
    (以下はデスクトップに「test_utf8.csv」ファイルがある場合)

    cd ~/Desktop

    画像:cdで移動

  2. iconvコマンドを使い、変換元(-f)と変換後(-t)の文字コードおよびファイル名を以下のように指定します。
    -cは「変換できなかった文字を出力しない」オプション)

    iconv -c -f utf-8 -t shift-JIS test_utf8.csv > test_shiftjis.csv

    画像:iconvコマンド

    【参考】 【 iconv 】コマンド――文字コードを変換する:Linux基本コマンドTips(46) – @IT

  3. デスクトップに生成された「test_shiftjis.csv」ファイルをExcelで開き、文字化けしていなければ変換成功です。
    画像:Shift-JISのCSVをExcelで開く

ちなみに、文字コードだけでなく、textutilという、ファイル形式も変換できるコマンドを使う方法もあります。

【参考】参考なんとなくコマンド(37) macOSのtextutil, iconvで文字コードを変換する | TECH+(テックプラス)

2-2. nkf(Network Kanji Filter)を使う

また、日本語の文字変換のみに特化したソフトである、nkf(Network Kanji Filter)を使ってもiconv同様のことが可能です。

Network Kanji Filter – Wikipedia

  1. nkfはターミナルを使ってインストールします(数分ほどかかる場合があります)。

    brew install nkf

    brewコマンドが使えない場合はHomebrewのインストールが必要です。

    【参考】 【初心者向け】Homebrewのインストール方法を解説! | AI Academy Media

  2. iconvと同様、該当のファイルがある階層にcdコマンドで移動した後、以下のように指定します。
    -sはshift-jisに変換するオプション。UTF-8に変換する場合は-w

    nkf -s test_utf8.txt > test_shiftjis.txt

    ※(-g)を使うと、既存の文字コードを確認できます。

  3. デスクトップに生成された「test_shiftjis.csv」ファイルをExcelで開き、文字化けしていなければ変換成功です。
    画像:Shift-JISのCSVをExcelで開く

    また、nkfでは複数のファイルを同時に変換することも可能です。
    詳しい使い方は以下の記事を参考にしてみてください。

    macでファイルの文字コードを変換する『nkfコマンド』の使い方とオプション一覧 | かわたま.net


以上、MacでCSVファイルの文字コードをUTF-8からShift-JISに変換する方法を紹介しました。