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

丸山直昌 maruyama @ ism.ac.jp
2017年 11月 12日 (日) 09:13:21 UTC


丸山です。

やはり梅本さんのご指摘が正解でした。

ports で make するとメニューが現れてオプションを聞いてきますが、ここで
ICONV を on にしてインストールすると、出来上がった unzip では

[root @ samanta{1044}] /usr/ports/archivers/unzip# pkg info unzip
unzip-6.0_6
Name           : unzip
Version        : 6.0_6
Installed on   : Sun Nov 12 17:03:38 2017 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          : on
        KOREAN         : off
        RUSSIAN        : off
(以下略)

になり、その unzip では

unzip -O sjis -l xxx.zip | nkf -S -w

とか、 unzip -O sjis xxx.zip で展開後

From: "IIJIMA Hiromitsu" <delmonta @ dennougedougakkai-ndd.org>
Date: Sun, 12 Nov 2017 14:22:28 +0900

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

などの手が使えます。要は

1. 配布されているパッケージでは ICONV が offとなっている
2. man unzip ではコンパイルオプションの ICONV にも -O オプションにも触れていない

の二つ落とし穴がある、という纏めになります。-O オプションの説明は、 ICONV on
でコンパイルした unzip では、パラメータ無しで起動したとき、

  -O CHARSET  specify a character encoding for DOS, Windows and OS/2 archives
  -I CHARSET  specify a character encoding for UNIX and other archives

と表示されるのでわかりますが、それ以外の箇所には説明は見当たりません。梅
本さんのお教えがなければ、わかりませんでした。感謝。

Sun, 12 Nov 2017 15:51:59 +0900
Hajimu UMEMOTO <ume @ mahoroba.org> writes:

>梅本です。
>
>>>> Sun, 12 Nov 2017 11:54:15 +0900 の刻に「maruyama」、すなわち
>>>> 丸山直昌 <maruyama @ ism.ac.jp> 氏曰く
>
>maruyama> るunzipを使って解凍してますが、日本語のファイル名のファイルは取り出すこ
>maruyama> とはできても、ファイル名が復元できなくて、困ることがあります。(ファイル
>maruyama> 名に重大な意味を込める人がいます。)
>
>ports/archivers/unzip を ICONV オプションを有効にして作リ、-Ocp932 あ
>るいは -Osjis オプションを指定すれば行けると思います。
>
>maruyama>         ICONV          : off
>
>残念ながら、デフォルトでは有効になっていないのですよね。
>
>--
>梅本 肇    http://www.mahoroba.org/~ume/
>ume @ mahoroba.org  ume @ FreeBSD.org
>プログラムは書いた人の意図ではなく書かれた通り動く  I hate Modula-3 :-)

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


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