macでファイルの文字コードを変換する『nkfコマンド』の使い方とオプション一覧
2015 February 20
macでファイルの文字コードを変換する『nkfコマンド』の使い方です。
「UTF-8」でエンコーディングされたhtmlファイルを「Shift-JIS」に変換したい。
ファイルのcharset宣言だけ変えたら文字化けした(調べてみて、そりゃそうだと納得・・・。)
sublime textは「UTF-8」しか使えないらしい。
OS X 10.10.2
まずはnkfコマンドがインストールされているかチェック。デフォルトでは入っていないようです。
$ nkf --version
インストールされていない場合はエラーが出ます。インストールしましょう。
「Homebrew」でnkfコマンドをインストール
OS X用パッケージマネージャー「Homebrew」でnkfコマンドをインストールします。
「Homebrew」の環境が整っていない場合は公式サイトを参照してください。
$ brew install nkf
インストールできたらバージョンをチェック
$ nkf --version
Network Kanji Filter Version 2.1.3 (2013-11-22) Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa). Copyright (C) 1996-2013, The nkf Project.
バージョンが表示されたらok
nkfコマンドの書式
$ nkf [options] [file]
-u 出力時にバッファリングを行わない
-j JISコードに変換する
-e EUCコードに変換する
-s シフトJISコードに変換する
-w UTF8コードに変換する
-r ROT13/47の変換する
-T テキスト・モードで出力する
file 変換元のファイルを指定する
-g 文字コード自動判別の結果を表示
–overwrite 引数のファイルに直接上書き
使用例
文字コードを変換したいファイルの文字コードをチェック
$ nkf -g hoge.html
ファイルの文字コードをUTF-8に変換
$ nkf -w --overwrite hoge.html
–overwrite を指定すると、元のファイルを変換して上書きします。
※元ファイルを残す場合は–overwrite をつけない
Shift-JISに文字コード変換
nkf -s --overwrite hoge.html
カレントディレクトリのファイル全てをSJISに変換
$ nkf -s --overwrite ./*
文字コード変換後は、ソースコードのcharset宣言も合わせて変更します。
今回色々調べてみたら、sublime textは基本「UTF-8」しか使えないんですね!知らなかった・・・
sublime textもプラグインを入れることで他の文字コードも扱えるようになったり、文字コードの変換もできるみたいです。試してみたらまた記事にします^O^