Hello Guest    ログイン
top > Linux > 文字コードの変換

文字コードの変換

カテゴリー: Linux| 公開: 2009/4/30 | コメント(0)

Linuxでテキストファイルの文字コードを変換する方法のメモ。

nkfを使う

$ nkf [オプション] 入力ファイル > 出力ファイル

オプション

-j (デフォルト) JISコードを出力
-e EUCコードを出力
-s Shift-JISコードを出力
-w UTF-8コードを出力
-Lu 改行コードをunix形式(LF)に変換
-Lw 改行コードをwindows形式(CRLF)に変換
-Lm 改行コードをmac形式(CR)に変換

UTF-8に変換。

$ nkf -w filename > filename.utf8

入力ファイルに上書きするときは、--overwrite オプションを使う。

$ nkf -w --overwrite filename

カレントディレクトリ以下のファイルを再帰的に変換する。(テキストファイル以外も変換されるので注意が必要)

$ find . -type f -exec nkf -w --overwrite {} \;

xargsを使う方法。

$ find . -type f | xargs nkf -w --overwrite

変換対象を「*.html」にする。

$ find . -name "*.html" | xargs nkf -w --overwrite

perl(Jcode.pm)を使う

$ perl -MJcode -i -lpe 'Jcode::convert(\$_, "文字コード")' 入力ファイル

再帰的に変換。

$ find . -type f | xargs perl -MJcode -i -lpe 'Jcode::convert(\$_, "utf8")'
$ find . -type f | xargs perl -MJcode -i -lpe 'Jcode::convert(\$_, "euc")'

ファイル名の文字コード変換

convmvを使う。カレントディレクトリにあるファイル名をEUC-JPからUTF-8に変換する場合。

$ convmv -f euc-jp -t utf8 *

上記のコマンドでは確認のみで実際に変換はしない。変換するときは、--notest オプションをつける。

$ convmv -f euc-jp -t utf8 * --notest

-r オプションで再帰的に変換できる。

$ convmv -r -f euc-jp -t utf8 * --notest

変換できる文字コードの確認。

$ convmv --list

トラックバックURL

コメント送信

メールアドレスが公開されたり他で使用されたりすることはありません。