カサヒラボ RSSフィード

2007-09-26

[]nkfを使って、ディレクトリ以下のファイルを「EUC-JP」⇒「UTF-8」に一括変換する。


いろいろ方法はありそうですが。。。


はじめに、教えてもらって、良いなと思ったのはこちら。

$ find . -type f -name "*.php" -exec nkf -w --overwrite {} ;

findでディレクトリ以下のphpファイルを見つけて、execでnkfしています。


なるほど、と思ったのですが、UTF-8 への移行計画 - いやなブログさんより、

さらにいいコマンドが紹介されてました。



  • EUC-JP の.php、.incファイルを UTF-8 に一括変換する場合

$ nkf -Ew **/*.php.inc | nkf --guess

UTF-8

$ nkf -Ew --overwrite **/*.php.inc

最初の実行で、変換結果が正しく UTF-8 になるか確認しているようです。

(もし文字化けが起きた場合は BINARY という表示になるみたい)

**/*.php.nc は、再帰的に *.php.inc というファイルを探すという、 zsh の便利な記法です。


こちらだと、一度変換結果も確認できるし、良さそう。

メモメモ。


ちなみに、nkfオプションはこちらです。


オプション備考
bバッファリング出力を行う
-u出力時にバッファリングを行わない
-jJISコードに変換する
-eEUCコードに変換する
-sシフトJISコードに変換する
-w UTF8コードに変換する
-i?JIS漢字を指示するシーケンスとして ESC-'$'-?を使用する
-o?1バイト英数文字セットを指示するシーケンスとしてESC-'('-?を使用する
-rROT13/47の変換する
-Tテキスト・モードで出力する
-l0x80-0xfeのコードをISO-8859-1 (Latin-1)として扱う。ただし,JISコードの時のみ有効
-f?一行?文字になるように簡単な整形を行う
-ZX0208中の英数字と一部の記号をASCIIに変換する
-JJIS(ISO-2022-JP)と仮定して処理する
-E日本語EUCと仮定して処理する
-SシフトJISと仮定して処理する
-XシフトJISと仮定して処理する。ただし,X0201仮名があるものとする
-B壊れた(ESCが欠損した)JISと仮定して処理する。-B1の場合はESC-(およびESC-$)のあとのコードを問わない。-B2の場合は改行の後に強制的にASCIIに戻す
-x通常行われるX0201仮名->X0208の仮名変換しない
file変換元のファイルを指定する

aaaa 2011/05/25 20:01 なぜ-Wが無いの?

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/kasahi/20070926/1190833699