[FreeBSD-users-jp 96160] Re: zipアーカイブ中の日本語ファイル

丸山直昌 maruyama @ ism.ac.jp
2017年 11月 12日 (日) 16:31:19 UTC


青木 様

丸山です。

Sun, 12 Nov 2017 22:46:48 +0900
Tomoaki AOKI <junchoon @ dec.sakura.ne.jp> writes:

>converters/convmvは、指定したディレクトリ内のファイル一括
>又は単一ファイル指定でファイル名の文字コード(エンコーディング)
>を変換するものです。

なるほど、それは便利そうですね。有難うございます。つまりは

foreach f (*)
    set g=`echo -n "$f" | nkf -Sw`
    if ( "$f" ne "$g" ) then mv "$f" "$g"
end

などということは convmv で一発でできる、ということでしょうか。昔Windows
で使っていたファイル達をそのまま UNIX のファイルシステムに単純コピーした
ものを未だに大事に持っていたりしますが、それらの日本語ファイル名を一括で
コード変換するには最適、という感じですね。

ただそれは私の元来の質問の趣旨、つまり unzip の解凍でのファイル名のコー
ドに関する挙動の問題とは別の話だと思います。今回梅本さんに教えて頂いたこ
とによってわかったことは

1. ICONV off でコンパイルされた unzip で解凍した場合
2. ICONV on でコンパイルされた unzip をそのまま使って解凍した場合
3. ICONV on でコンパイルされた unzip にコマンドラインオプション
    -O sjis を付けて解凍した場合

ではファイル名は全部違う結果になりました。そして 3 だけが私が理解できる
文字コードで、他の二つは nkf をどう使っても読める文字のファイル名は現れ
ませんでした。ま、私の nkf に対する理解が足りないのかも知れませんが、も
し 1 と 2 の場合にどのようなコードがファイル名として現れるかわかりました
ら、この ML 書いて報告して頂ければ幸いです。

--------
丸山直昌@統計数理研究所


freebsd-users-jp メーリングリストの案内