nkfコマンドで文字コード変換 macOS/Linux/Unix
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 | -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に変換して上書き保存
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