サイトロゴ

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

著者画像
Toshihiko Arai

はじめに

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

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

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

nkfのインストール

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

$ brew install nkf

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

$ 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 オプションを付与します。

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

$ nkf -g data.csv
UTF-8

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

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

オプション(入力) オプション(出力) 意味
-S -s Shift-JIS
-E -e EUC-JP
-W -w UTF-8
-W16 -w16 UTF-16

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

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

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

$ nkf -w --overwrite data.csv

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

別名で保存

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

$ nkf -s data.csv > data_jis.csv

簡単ですね!

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

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

$ cat data_utf16.txt|cat -W16

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

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

関連記事