青木@名古屋です。

nkfでうまく変換できないとなると望み薄かもしれませんが、
converters/convmvでファイル名を変換してしまうという手は?

あれば便利な状況もありますし、--notestオプションを指定
しなければ実際のリネームは行われない(所謂dry-run)ので
試す価値はあるかと。

あと、気になったのですが、nkfで文字コードの自動判別がちゃんと
機能していない可能性もありそうです。

 ※ある程度以上の大きさで割と先頭付近に判別に使える文字が
  適切な数あればいいのですが、ファイル名だと文字数が足りない
  可能性も...。

その場合、手動で指定してあげれば大丈夫な可能性がありますが、
そもそも、Windoze上のzipでアーカイブに格納されるファイル名って
何でしたっけ?
もしローカルのファイル名を変換せずに格納しているなら、 非VFATの
FAT系なら Shift-JIS(CP932)、それ以外ならUCS-2(記録形式としては
UTF-16LEかUTF-8)かと。
この場合、格納されていたファイル名がUTF-8なら変換する意味が
無い筈なのでUTF-8は置いておいて、

    Shift-JISならnkf -S -w
    UTF-16LEならnkf -W16L -w か nkf -W16L0 -w

 ※UTF-8でローカルもUTF-8ならそもそも化けてはおかしいし、UTF-16LE
  だとASCII文字の範囲すら2バイトになってしまうので使うかどうか
  疑問ですが、そこまでは調べきれていません。

 ※0の有無はBOMの有無です。

convmvの場合、安全のため回答したファイル以外の入っていない
作業ディレクトリを使う前提として、各々

 convmv -f shiftjis -t utf-8 -r 作業ディレクトリ名
 (convmv -f CP932 -t utf-8 -r 作業ディレクトリ名 かも?)

 convmv -f UTF-16LE -t utf-8 -r 作業ディレクトリ名
 (convmv -f UCS-2LE -t utf-8 -r 作業ディレクトリ名 かも?)

でいけるかと。 確認が取れて実際に変換する場合、オプションに
--notestを追加です。

 ※-rはサブディレクトリがあった場合に再帰的に処理させる
  オプションです。

convmvの扱えるエンコーディングはconvmv --listで見られます。

.....まさか、ISO-2022-JPやISO-2022-JP-1で格納されていると
いうことは無いですよね? DOS系(95等)・NT系(2000や
eXPerimental以降)の両方で無駄な変換が出ますし...。


On Sun, 12 Nov 2017 11:54:15 +0900
maruy...@ism.ac.jp (丸山直昌) wrote:

> 統計数理研究所の丸山@ Windows大嫌い、です。
> 
> Windowsで作ったzipアーカイブを添付ファイルで送られてくると、 packageにあ
> るunzipを使って解凍してますが、日本語のファイル名のファイルは取り出すこ
> とはできても、ファイル名が復元できなくて、困ることがあります。(ファイル
> 名に重大な意味を込める人がいます。)
> 
> % unzip -l xxx.zip |nkf -w
> 
> などとしてもファイル名は見えません。これ何とかならないものでしょうか。
> 
> # Windows にファイル転送して見る、という回答はなしですよ。
> 
> [maruyama@pc01{1017}] ~% pkg info unzip
> unzip-6.0_6
> Name           : unzip
> Version        : 6.0_6
> Installed on   : Fri Dec  9 01:28:23 2016 JST
> Origin         : archivers/unzip
> Architecture   : freebsd:10:x86:64
> Prefix         : /usr/local
> Categories     : archivers
> Licenses       : Info-ZIP
> Maintainer     : eha...@freebsd.org
> WWW            : http://www.info-zip.org/UnZip.html
> Comment        : List, test, and extract compressed files from a ZIP archive
> Options        :
>         CHINESE        : off
>         DOCS           : on
>         ICONV          : off
>         KOREAN         : off
>         RUSSIAN        : off
> Annotations    :
>         cpe            : cpe:2.3:a:info-zip:unzip:6.0:::::freebsd10:x64:6
> Flat size      : 305KiB
> (以下略)
> 
> --------
> 丸山直昌@統計数理研究所
> _______________________________________________
> freebsd-users-jp@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"
> 


-- 
青木 知明  [Tomoaki AOKI]    <junch...@dec.sakura.ne.jp>
_______________________________________________
freebsd-users-jp@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"

メールによる返信