zipext2.py。pyid3lib(sourceforge.net)を使ってMP3のID3タグのエンコードも変換してしまうように変更。これで、
Linux# python zipext2.py -c -m hogehoge.zip
で作るとhogehogeディレクトリ以下のファイルはファイル名は全部、そしてMP3のID3タグをEUC-JPにしている人はShift_JISに変換される(Windowsで見える)。
Windows側でzipに入れたMP3は
Linux# python zipext2.py -m hogehoge.zip
とするとLinux用になるはず。失敗してたらわりいって感じで。-cがzipファイルを作るオプション、-mがMP3の中身を触る、というオプション。
本来はID3タグはtextenc(だっけ?)を1(だっけ?)に設定してUnicodeにするほうが王道のような気もするのだが、仕様もよくわかってないのでShift_JISにしてWindowsで読めればそれでいいじゃん、みたいな感じにしている。
例によってz2hオプションとstringmisc.pyで全角から半角に変換する。ID3タグについても同様。半角から全角に変換するオプションは、ない。
Linuxではファイルシステムやその他いろんなツールがだんだんUnicodeになってしまいつつある。だから、ファイル名のエンコードを変換しながら移行する、というニーズはこれからどんどん増えてくると思う。ファイルシステムを信用せず(?)にアーカイブして、そのおかげでファイル名が化けるというのもバカバカしい話だ。
ID3タグのエンコードについては私だけの問題で、ID3だけの変換はid3encode.pyみたいに分けて使ってもそれなりにいいかな、とも思います。しかしよくわかってないけど、textenc=0ならISO8859-1なはずじゃないのかな。EUC-JPやShift_JIS入れてなぜか読めちゃってるのが悪い?