[ubuntu-jp:1561] Re: ZIPファイルを作成しWindowsで解凍するとファイル名が化ける

Ryosuke Takahashi joker @ 2khz.net
2009年 2月 2日 (月) 03:39:03 GMT


d.Jokerです

最初、localeでja_JP.sjisやらja_JP.cp932を作ってやればいけるんじゃないかと
思いましたがダメでした。

zipを作る前にconvmvでファイル名の文字コードを変換する方法があるようです。
Linux上で、Windows向けのzipファイルを作る
http://www.ftnk.jp/~fumi/cl/2007-06-29-2.html

$ convmv --r --notest -f utf8 -t cp932 [directory]
$ zip -r [filename.zip] [directory]

解凍の際は
$ LANG=ja_JP.UTF-8 unzip [filename.zip]
とすることで、文字化けされずに解凍できました。
# CGIではLANG=Cとなっているのではないでしょうか?

その他、ZIPの文字化け関連はUbuntu日本語フォーラムにも投稿されています。
http://forums.ubuntulinux.jp/viewtopic.php?id=3529
など


Nobuyuki Inaba さんは書きました:
> ありがとうございます。
> 
> 例えば、ファイル名が「あいうえお.txt」
> の場合、
> 
> zip test.zip あいうえお.txt
> 
> とするところを
> filename = filenema.decode('UTF-8').encode('cp932')
> とどう組み合わせるかがわかりません。
> これは、何かのプログラム言語をさすのでしょうか?
> 
> それと、もう一つ問題がおきまして、
> 「逆にWindowsで圧縮したのはUbuntuで解凍しても文字化けはおこりません。」
> といいましたが、コマンドで手で
> 「unzip test.zip」とやるとうまく行きますが、
> Apache のcgiで組んでいるところでして、そのブログラム上から、
> 「`unzip test.zip`」とやると
> 「����������_ (無効なエンコーディング)」と言うようなファイル名になってしまいます。
> なにかご存知ないでしょうか?
> 
> 
> 2009/02/02 10:22 INADA Naoki <songofacandy at gmail.com>:
>> 稲田です。
>>
>> Zipだとファイル名のエンコーディングにUnicodeが使えるようになったのが最近で、
>> まだ対応しているアーカイブソフトは殆どありません。
>>
>> 非Unicodeの場合、Windowsの伝統ではファイル名を MSーJIS(cp932) で保存して
>> いるので、Linuxでzipを作成するときに日本語ファイル名を cp932 にエンコードしてやる
>> 必要があります。
>>
>> filename = filenema.decode('UTF-8').encode('cp932')
>>
>> とされてみては如何でしょうか?
>>
>>


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 260 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/ubuntu-jp/attachments/20090202/2fa422c7/attachment.pgp 


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