ファイル名の文字コードを変換
http://www.josw.net/blog/?p=992
世の中、Windows使ってる人ばっかりですよね。
そんな中でLinuxを使うと、HPからダウンロードしてきたファイルはほとんど文字化けしちゃいますね。
というわけで、ファイル名の文字コードを自動で認識して、UTF-8に変換するスクリプトを書いてみました。
Pythonの勉強がてら(いやテスト勉強しろよ)って感じなんで、「これでいいじゃん!」って言うのは無しで!
あと、とりあえず版なんで、クラス化とか一切行ってない地味なソースです。
欲しいと思う機能が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オプションを利用して挙動を確認してください。
あと、何が起こっても自己責任ということで(お約束)。