Ubuntu 16.04 LTS で zip に固めたファイルのファイル名を文字化けせずに Windows で展開する方法

本質

標題が具体的で長ったらしいですが、つまり以下のことを実現したいのです。

Linux のファイル名の文字コードを UTF-8 と Shift-JIS の間で行き来したい(文字化けを防ぎたい)

結論

convmvを使います。

1. インストール

インストールします。

$ sudo apt-get install convmv

2. 使う

あとはオプションを指定してコマンドを実行すればいいです。

例えば、以下の4つのファイルがあるとします。

$ ls
おはよう!.txt  こんにちは!.txt  こんばんは!.txt  さようなら!.txt

これらのファイルのファイル名を UTF-8 から Shift-JIS に変換するためには次のように実行します。

$ convmv -r -f utf8 -t sjis --notest *.txt
mv "./おはよう!.txt"  "./���͂悤�I.txt"
mv "./こんにちは!.txt"   "./�����ɂ��́I.txt"
mv "./こんばんは!.txt"   "./�����΂��́I.txt"
mv "./さようなら!.txt"   "./���悤�Ȃ��I.txt"
Ready! I converted 4 files in 0 seconds.

これらのファイルのファイル名を Shift-JIS から UTF-8 に変換するためには次のように実行します。

$ convmv -r -f sjis -t utf8 --notest *.txt
mv "./�����ɂ��́I.txt"   "./こんにちは!.txt"
mv "./�����΂��́I.txt"   "./こんばんは!.txt"
mv "./���͂悤�I.txt"   "./おはよう!.txt"
mv "./���悤�Ȃ��I.txt" "./さようなら!.txt"
Ready! I converted 4 files in 0 seconds.

備考

GUIなアプリケーションでコードを自動変換するものは見つけられませんでした……*1。なので、現状では相手先の(受け側の)文字コードに合わせて手動で変換する必要があります。何とかならないか。

*1:Windows ならば Explzh がありますね

Powered by はてなブログ