2010年 5月 31日 はてなブックマーク -

ファイル名の文字エンコーディングの統一

プロジェクトデータのファイル名について、歴史的な経緯により、EUC-JP・Shift_JIS・UTF-8という3種類の文字エンコーディング が混在していました。これを統一しました。</home/> 配下にすべてのプロジェクトデータがあるため、下記のような作業となります。

# cd /home
# convmv -r -f euc-jp -t utf8 *

convmvは、「—notest」オプションを明示的につけないと、実際には変換されません (dry run)。また、「-f」オプションで指定した文字エンコーディングでないファイルがあると「this file was not validly encoded in euc-jp」と教えてくれます。これで、ファイル名がEUC-JPではないファイルが分かります。Shift_JISであることは分かっていたのです が、念のためにnkfでもチェックします。

# cd /home/project/foo
# echo * | nkf --guess
Shift_JIS

やはりShift_JISでした。このディレクトリ配下だけ、Shift_JISからUTF-8に変換します。

# convmv -r -f sjis -t utf8 *
# convmv --notest -r -f sjis -t utf8 *

「—notest」をつけて実際に変換します。

その後、残りのEUC-JPのファイルを一括で変換します。

# cd /home
# convmv -r -f euc-jp -t utf8 *
# convmv --notest -r -f euc-jp -t utf8 *

これで、すべてのファイル名がUTF-8になりました。

なげやり日記: ファイル名の文字エンコーディングの統一

1年前 | | 2010年 5月 31日 | このエントリーを含むはてなブックマーク