ファイルの文字コードを調べる
linux上でファイルの文字コードを調べたかった。
CentOS4でkccもnkfも入ってないみたいなので、nkfを入れてみた。
# wget http://osdn.dl.sourceforge.jp/nkf/20770/nkf207.tar.gz # tar xzvf nkf207.tar.gz # cd nkf207 # make # install nkf /usr/local/bin
ファイルの文字コードの変換、改行コードの変換
このページが参考になりました。
構文$ nkf オプション ファイル名 [> 出力ファイル名]
オプション一覧
- j(省略可能) : JISコード(ISO-2022-JP)を出力
- e : EUCコードを出力
- s : Shift-JISコードを出力
- w : UTF-8コードを出力(BOM無し)
- Lu : unix改行形式(LF)に変換
- Lw : windows改行形式(CRLF)に変換
- Lm : macintosh改行形式(CR)に変換
- g(--guess) : 自動判別の結果を表示
- overwrite : 引数のファイルに直接上書き
- version : バージョン情報を表示(インストール済チェック)
使用例
・文字コードチェック$ nkf -w --overwrite example.csv
・変換されているかチェック
文例
・文字コード変換(JISコード/ISO-2022-JP)$ nkf -j --overwrite example.csv
$ nkf -e --overwrite example.csv
・文字コード変換(Shift-JIS)
$ nkf -s --overwrite example.csv
$ nkf -w --overwrite example.csv
・ディレクトリ内txtファイル全てを、文字コード→UTF-8、改行→unix形式(LF)に変換
$ nkf -w Lu --overwrite *.txt
・ディレクトリ内txtファイル全てを、文字コード→Shift_JIS、改行→windows形式(CRLF)に変換
$ nkf -s Lw --overwrite *.txt
失敗例
$ nkf -w example.csv > example.csv
とやると、中身が空っぽになるので注意。
きちんと--overwriteオプションをつけるか、違う名前で変換後mvコマンドで上書きすること。