2010年04月28日
_ [Ubuntu] Lucid用Shift JIS対応unzipで文字化け
試してみたら追加できてしまったLucid向けのUbuntu-jaリポジトリからShift JIS対応のunzipを入れた。
バージョンは6.0-2~5.52~ja3。
喜んで解凍してみたのだが、何故か文字化けする。
% unzip KouzanMouhituFont.zip Archive: KouzanMouhituFont.zip inflating: tRMtHg.ttf % ls KouzanMouhituFont.zip ?t?R?M?t?H???g.ttf
彷徨うと、SJISのファイル名・パスワード対応 unzip と lha (Fedora 9)を発見。
LANGがja_JP.UTF-8ではなく、ja_JP.utf8だとなるらしい。
手許のLucidでは、
% locale LANG=ja_JP.utf8 LC_CTYPE="ja_JP.utf8" LC_NUMERIC="ja_JP.utf8" LC_TIME="ja_JP.utf8" LC_COLLATE="ja_JP.utf8" LC_MONETARY="ja_JP.utf8" LC_MESSAGES="ja_JP.utf8" LC_PAPER="ja_JP.utf8" LC_NAME="ja_JP.utf8" LC_ADDRESS="ja_JP.utf8" LC_TELEPHONE="ja_JP.utf8" LC_MEASUREMENT="ja_JP.utf8" LC_IDENTIFICATION="ja_JP.utf8" LC_ALL=
確かにja_JP.utf8だ。
先ほどのZipファイルで試してみる。
% LANG=ja_JP.UTF-8 unzip KouzanMouhituFont.zip Archive: KouzanMouhituFont.zip inflating: 衡山毛筆フォント.ttf
出来た。
unzipパッケージのソースを落としてパッチを眺めてみると、
if ( (ctype_len >= 5 ) && (strncmp(ctype + ctype_len -5, "UTF-8", 5) == 0) ) {
となっており、UTF-8は受け付けるが、utf8はスルーされているっぽい。
zshで
alias unzip="LANG=ja_JP.UTF-8 unzip"
として凌ぐ。
多分そのうち修正されると思う。
[]

同様の問題で悩んでいました。 <br>ありがとうございます。
しかし、file-rollerは相変わらずです。 <br>file-rollerはunzipを使っていないのでしょうか?
file-rollerから呼び出されるunzipがLANG=ja_JP.UTF-8ではないからでしょう。 <br>上に書いたのは端末での一時しのぎですから(^_^; <br>~/.profileあたりで <br>export LANG=ja_JP.UTF-8 <br>をやれば大丈夫かもしれません。 <br>試してませんが。
export記述して再ログインしてみましたが、反映されてなかったです。 <br>ならばと、直接、端末でexport LANGを設定して <br>localeで、変更を確認し、file rollerを使ってみましたが、 <br>やはり文字化けしたままです。うーん。日本語Remixで <br>導入した友人などに、同様の症状がでないか聞いてみます。
/etc/gdm/Xsessionを覗くとGDM_LANGで上書きできるようなので、~/.profileに <br>export GDM_LANG=ja_JP.UTF-8 <br>を仕込んでみて下さい。 <br>手元の環境ではこれでfile-rollerも文字化けせずに動いてくれました。
後日談見て下さい。