[FreeBSD-users-jp 96152] Re: zipアーカイブ中の日本語ファイル
Tomoaki AOKI
junchoon @ dec.sakura.ne.jp
2017年 11月 12日 (日) 06:16:02 UTC
青木@名古屋です。
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
maruyama @ 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 : ehaupt @ 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-unsubscribe @ freebsd.org"
>
--
青木 知明 [Tomoaki AOKI] <junchoon @ dec.sakura.ne.jp>
freebsd-users-jp メーリングリストの案内