nkfコマンドで文字コード変換 macOS/Linux/Unix

【シェル】nkfでShift-JISをUTF-8に変更する【macOS】
【シェル】nkfでShift-JISをUTF-8に変更する【macOS】

macOSでShift-JISのテキストファイルをUTF-8へ変更するため、シェルコマンド nkf を使ったときのメモになります。

文字コードを変えるソフトは nkf の他にも iconv が存在します。ですが iconv ですとテキストファイルが何の文字コードを使っているか調べられないため、nkf を使ったほうが便利です。

ここでは nkf コマンドの簡単な使い方を解説していきます。

nkfのインストール

macOSに nkf をインストールしましょう。

shell
$ brew install nkf

インストールしたら nkf コマンドが使えるかどうかチェックしましょう。

shell
$ nkf -v
Network Kanji Filter Version 2.1.5 (2018-12-15) 
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).
Copyright (C) 1996-2018, The nkf Project.

(へー、富士通が開発なさったんですねー)

文字コードを調べる

文字コードを調べるには -g または --guess オプションを付与します。

こんな感じで文字コードが調べられます。

shell
$ nkf -g data.csv
UTF-8

文字コード変換オプション

次に文字コード変換オプションを説明します。 大文字が入力の文字コードで、小文字が出力の文字コードを表します。

オプション(入力)オプション(出力)意味
-S-sShift-JIS
-E-eEUC-JP
-W-wUTF-8
-W16-w16UTF-16

Shift-JISをUTF-8へ変換する

Shift-JISのテキストファイルをUTF-8へ変換してみます。

UTF-8に変換して上書き保存

shell
$ nkf -w --overwrite data.csv

どうも入力の文字コードの指定はいらないみたいです。 自動で判別してくれてるようですねぇ。これは便利!

別名で保存

別名で保存したいときは次のようにすればOKです。

shell
$ nkf -s data.csv > data_jis.csv

簡単ですね!

catコマンドと組み合わせて、ファイルを上書きせずに表示する

次は、UTF-16のテキストデータをコンソールに出力する例です:

shell
$ cat data_utf16.txt|cat -W16

これで文字化けせずに中身を確認できるようになりました。

さらに詳しくは $ man nkf でお調べください。

関連記事

最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム

Python学習にオススメの本をご紹介!
Pandasでデータサイエンスはじめよう!
スクレイピングにオススメの書籍

▼ Beautiful Soup4を使ったWebクローリングをはじめ、表データをpandasやOpenPyXL、matplotでデータ解析、グラフ表示などのスクレイピングのやり方が分かりやすく説明されてます。図解が多いのでPython初心者の方でも読み進められる内容となってます。