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

http://www.josw.net/blog/?p=992

世の中、Windows使ってる人ばっかりですよね。

そんな中でLinuxを使うと、HPからダウンロードしてきたファイルはほとんど文字化けしちゃいますね。

というわけで、ファイル名の文字コードを自動で認識して、UTF-8に変換するスクリプトを書いてみました。

Pythonの勉強がてら(いやテスト勉強しろよ)って感じなんで、「これでいいじゃん!」って言うのは無しで!

あと、とりあえず版なんで、クラス化とか一切行ってない地味なソースです。

fnconv.tar.gz

欲しいと思う機能が30分近くで書けるのがPythonのいいところ…。

というわけで使い方です。

$ tar zxvf fnconv.tar.gz ; cd fnconv

で解凍後、

$ chmod 744 fnconv.py

で実行権を与えるか、

$ python fnconv.py

で直接実行してください。

オプションは以下のとおりです。

-p DIR_PATH  必須オプション。-pの後に半角スペースを入れて、変換対象のディレクトリを指定。ディレクトリ内のファイルのファイル名すべてがUTF-8に変換されます。デフォルトはカレントディレクトリです。

-n 挙動確認用オプション。変換は行わず、動作を確認出来ます。デフォルトでオンになってますが、-pオプションを指定することでオフになります。

文字コード認識についてですが、自動で文字コードの認識を完璧に行うっていうのは不可能らしいんで、そこそこの精度となります。

認識をサポートしてる文字コードはascii, utf-8, shift-jis, euc-jpです。ただ、Vistaで作成したファイルの認識には失敗してました。さすがVistaだ。

そういうわけなので、利用される際は必ず-nオプションを利用して挙動を確認してください。

あと、何が起こっても自己責任ということで(お約束)。