linux iconvコマンドとnkfコマンドでファイルの文字コードを変換する方法

2018.1.29

iconvを使って変換する方法

構文は下記のようになります。

iconv -f [エンコード指定] -t [エンコード指定] [入力ファイル]

実際にWindows上で作成したShift-jisのファイルをutf-8に変換してみる

iconv -f CP932 -t UTF8 shift-jis.txt > utf8.txt

※Shift-jisを変換したいときにはcp932を指定する必要があります。

nkfを使って変換する方法

ubuntu16.04ltsでは標準でnkfコマンドがインストールされていませんので、インストールしてから使用する必要があります。

sudo apt install nkf

「-g」オプションを使うと、ファイルの文字コードを調べることができます。

$ nkf -g sample.txt

UTF-8

比較的よく使われそうなオプション一覧。

-w           : UTF-8で出力
-s           : Shift-JISで出力
-e           : EUC-JPで出力
-g           : 自動判別
--overwrite  : 直接上書き

EUC-JPに変換する場合は下記のようにします。

nkf -e --overwrite sample.txt

UTF-8に変換する場合は下記のようにします。

nkf -w --overwrite readme.txt