Windowsのコマンドプロンプトでサポートされている文字コードは、基本的には「Shift_JIS」のみですが、最近ではWebを始めとして「UTF-8」が使われるケースが多くなっており、Windowsコマンドを使った処理でも複数の文字コードを扱いたい機会が増えています。
そんなときに便利なのが、コマンドで文字コードを変換できるツールとして定番の「nkf(Network Kanji Filter)」です。
そこでここでは、Windows 10での「nkf(Network Kanji Filter)」の使い方を紹介します。
目次
nkf(Network Kanji Filter)とは
nkfは、文字コード変換ツールとしてかなりの歴史があります。
nkfは1987年、市川 至らによって開発された。ソースコードが公開され、有志によってBSDやWindowsへも移植された。
nkfが対応する文字コードはJIS コード、cp932(Shift-JIS)、 日本語 EUC、UTF-8、UTF-16であり、相互に変換することができる。 入力/出力はファイルからのみではなく標準入力/標準出力を利用することも可能である。 入力の文字コードはできる限り自動判別するため、基本的には出力の文字コードを指定するだけで使用できる。
nkfのインストール
Windows向けのnkfツールは、以下のサイトから入手できます。
nkf.exe nkf32.dll Windows用の詳細情報 : Vector ソフトを探す!
ダウンロードしたファイルを展開し「vc2005win32(98,Me,NT,2000,XP,Vista,7)Windows-31J」フォルダーの中にある「nkf32.exe」という実行ファイルを、パスの通ったフォルダーに保存すれば準備完了です。
nkfコマンドの使い方
nkfは「nkf ファイル名」でファイルを指定したり、パイプなどを利用して標準入力から受け取った内容を変換して、標準出力に書き出すことができます。
文字コードを指定する場合は、次のようなオプションを指定します。これ以外のオプションについては、ツールに付属しているヘルプファイル(nkf.txt)を参照してみてください。
ちなみに、オプション指定なしで実行するとShift_JISに変換してくれます。
オプション | 説明 |
---|---|
-j | JISコード |
-e | EUCコード |
-s | Shift_JISコード |
-w | UTF-8(BOMなし) |
-w8 | UTF-8(BOMあり) |
-w16 | UTF-16(ビッグ・エンディアン。BOMあり) |
-w16L | UTF-16(リトル・エンディアン。BOMあり) |
たとえば、Windowsのメモ帳で文字コードUTF-8のテキストファイルを用意して、コマンドプロンプトからtypeコマンドで表示すると、以下のように文字化けします。
これをnkfコマンドを利用しShift_JISに文字変換することで、正常に表示することができ、リダイレクトを使用すれば、変換後のテキストをファイルに保存することもできます。
上の例では、パイプを使って変換していますが、次のように直接ファイルを指定して変換することもできます。
> nkf -s e:utf8.txt
あとがき
nkfは、文字コード変換で使われる定番のツールと言えます。かなり古くからあるツールですが、いまだに現役とはすごいです。
ご活用あれ。