Windowsで圧縮した日本語ファイルをFreeBSDでunzipすると文字化けする。



ここでの文字化けは、ファイル名だけでなく、どうも中身も壊れてしまうようだ。



該当ファイルをlsしてみると、(無効なエンコーディング)と表示される。
$ ls
進捗1112.xls (無効なエンコーディング)
$
仕事上、メールをFreeBSDマシンで受けることがあるのだが、このおかげでメールに添付されたファイルを開けない。



困っていて検索したところ、以下のページがヒット。



これで内容が壊れる件は問題なく出来た。(ファイル名はSJISなのでやっぱり化ける。UTF-8やEUC-JPにするには[convmv](http://d.hatena.ne.jp/flageo/20070302/p1)が必要)



[http://nhh.mo-blog.jp/ttt/2007/03/zipunzip_315b.html](http://nhh.mo-blog.jp/ttt/2007/03/zipunzip_315b.html)



ここに記載の通り、"CFLAGS+=-D'Ext_ASCII_TO_Native(string, hostnum, hostver, isuxatt, islochdr)'"をつけてmake。



出来たカスタム版unzipだが、/usr/local/bin配下に置くのはちょっと嫌なので、ホームディレクトリのbin配下にコピー。さらにカスタム版だということが分かるよう、名前はunzip.custに変えた。
$ cd /usr/ports/archivers/unzip
$ make "CFLAGS+=-D'Ext_ASCII_TO_Native(string, hostnum, hostver, isuxatt, islochdr)'"
(略)
$ cd ./work/unzip60 (workの下のディレクトリ名は異なる可能性あり)
$ cp unzip ~/bin/unzip.cust
$