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