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

Takashi SHIRAI shirai @ unixusers.net
2017年 11月 13日 (月) 02:58:15 UTC


 しらいです。

 これって、そもそも論として「CJK 圏で困るから ICONV=on でビ
ルドしてね」ってメンテナさんにお願い出来ないんでしょうか?

In Message-Id <ydlo9o7o3vw.fsf @ samanta.ism.ac.jp>
        maruyama @ ism.ac.jp (=?iso-2022-jp?B?GyRCNF07M0Q+PjsbKEI=?=)さんwrites:
> 丸山です。

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

 オフトピックですがちょっとだけ宣伝させて貰うと、FDclone で
は SJISPATH とか UTF8ICONVPATH とか適切に設定しておくと、コ
ピーや移動するだけで勝手にファイル名を変換してくれます。
 あと、リモートとローカルとでコードが異なる場合は、pty を有
効にすることでリモートコードをローカルコードに変換して表示す
ることも出来ます。


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

 nkf の代わりに hd なり od なりにファイル名を渡してやれば、
hex で確認出来るのでどういうコードとして扱われたのかが判りま
す。
 ご自身で判別出来ない場合は、差障りないファイル名を幾つか用
意して、hd の結果を ML に挙げて貰えれば、ここにいる人なら見
ただけで判る人が何人もいると思います。

 ここからは想像ですが、1 は多分 MSB を落されたり「?」に変換
されたりして、不可逆な状態のファイル名になってしまっているん
じゃないですかね。
 2 はリソースが Sjift_JIS 以外のコードだと誤解して変換して
しまった結果だと思うので、nkf に -s オプションに加えて適切な
--ic オプションを設定してやることで復元出来るかも知れません。

                                               しらい たかし


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