macOS – Terminalを使いCSVファイルの文字化けを直す

エクセルファイルの初期設定では文字コードがShift-JISコードに設定されていることが多く、macでcsvファイルを開くと文字化けがされていることが多い。

なので、この文字化けを直すにはShift-JISからUTF-8に変更する必要があるのでTerminalを使って文字コードを変更する方法を解説します。

手順

ここでは郵便番号データを例として解説をしていきます。都道府県一覧から適当なzipファイルをダウンロードして試してみてください。

Terminalの起動

前提として文字コードを変更したいCSVファイルはダウンロードに配置しています。

ターミナルを起動しダウンロードディレクトリに移動します。

% cd Downloads

ダウンロードディレクトリに移動できたらzipファイルを解凍します。zipファイルを解凍するにはunzipコマンドを使用します。

% unzip 01hokkai.zip

下記のような表示が出れば解凍ができています。

Archive:  01hokkai.zip
  inflating: 01HOKKAI.CSV

次にcsvファイルの文字コードを確認します。文字コードを確認したい場合下記のコマンドで確認できます。

% file --mime 01HOKKAI.CSV

または

% file -I 01HOKKAI.CSV

fileコマンドの--mime-IのオプションはMIMEタイプの文字列を出力してくれます。上記のコマンドを実行結果は下記のように表示されると思います。

01HOKKAI.CSV: text/csv; charset=unknown-8bit

charset=unknown-8bitはファイルの文字コードの種類を示し、Shift-JISコードであると示しています。この文字コードを変換するにはiconvコマンドを使用します。

% iconv -f shift_jis 01HOKKAI.CSV > hokkai.CSV

01HOKKAI.CSVファイルのデータを複製し新たにhokkai.CSVというファイル名で作成しています。SHIFT-JISからUTF-8に変換する方法は以上です。