2011/07/26

linuxのunzipでUTF-8のファイル名が文字化け

linuxのunzipでUTF-8の日本語を含むファイル名があると文字化けしてしまいます。
http://lfsbookja.sourceforge.jp/BLFS/svn.ja/general/unzip.html

※ubuntuは大丈夫らしい。
https://wiki.ubuntulinux.jp/Develop/UnzipTestcase

以下のunzipにpatchをあてて回避できる。
ただしコマンド実行時はLANG指定をLANG=ja_JP.UTF-8にしてください。

1.Info-ZIPのソースをダウンロード
  http://en.sourceforge.jp/projects/sfnet_infozip/releases/?file_id=1366735
「unzip60.tar.gz application/x-gzip 1.3 MB 2009-04-30 12:11」
   を落としてください。

2.patchをダウンロード
  wget http://gist.github.com/raw/573753/unzip-6.0-japanese_charset.patch
  https://gist.github.com/573753

3.unzip6.0のソースを解凍
  tar xvzf unzip60.tar.gz

4.パッチを適用
  cd unzip60
  patch -p1 < unzip-6_0-japanese_charset_patch

5.makeを実行
  make -f unix/Makefile LOCAL_UNZIP="-D_FILE_OFFSET_BITS=64 -D_MBCS -DNO_WORKING_ISPRINT -DNLS" unzip

6.作成されたunzipを使って解凍すれば文字化けしません。

ちなみに、MAC-UTF8で作成したファイル名で濁点や半濁点がおかしく
なるようです。