エンコーディングは地味に未解決の問題ですよね。文字化けしたシートを開くととても不思議な気持ちになります。今日はnkfを使用してコマンドラインからエンコーディングを変更する方法についての記事です。

環境

  • macOS
  • ターミナル

nkfは入れましたか?

ターミナルを起動してbrewで nkf をインストールしておきましょう。nkfとはNetwork Kanji Filterの頭文字みたいです。nkfを使えばcsvの文字コードと改行コードをさくっと変更できます。

brew install nkf

これで準備完了です。

nkfの使い方

シートはShift JISだけど、インポートするときはUTF-8でなきゃならないとかありますよね。以下のようにエンコーディングを変更します。

# 文字コードと改行コードを調べる
% nkf --guess test.csv
Shift_JIS (CRLF)

# Shift JISをUTF-8に変換して上書き
% nkf -w --overwrite test.csv

# Shift JISをUTF-8に変換して別ファイルに出力
% nkf -w test.csv > test_utf8.csv

# 改行コードをLFにする
% nkf -Lu --overwrite test.csv

# 改行コードをLFにする
% nkf -Lw --overwrite test.csv