- PR -

ファイル名が2Byte文字の圧縮について。

1
投稿者投稿内容
IB
会議室デビュー日: 2005/09/03
投稿数: 18
お住まい・勤務地: 神奈川
投稿日時: 2005-09-23 10:39
おはようございます。

ファイルの圧縮処理の実装を試案中なのですが・・・
「ファイル名が2Byte文字」のファイルを圧縮すると、zipフォルダ直下に
文字化けしたファイルが作成されてしまいます。。。
ファイル内容はしっかり保存できているのですが。

FileInputStream&BufferedInputStreamでファイルを読み込み、
ZipOutputStreamで書き出しています。

色々試したのですが、全くうまくいきません。
対策方法をご存知の方がいらっしゃりましたら、
アドバイスして頂きたいです。宜しくお願い致します。
Yama
会議室デビュー日: 2003/06/01
投稿数: 3
投稿日時: 2005-09-23 13:19
SunJavaのZipは、日本語だめみたいですよ
私のやった仕事(4年位前)での回避方法は、
JavaプログラムからOSのzipコマンド実行してました。

その他ネットで調べたらこんなのもあるみたいですよ
org.apache.tools.zip
IB
会議室デビュー日: 2005/09/03
投稿数: 18
お住まい・勤務地: 神奈川
投稿日時: 2005-09-23 13:41
Yamaさん、こんにちは。
ご返信ありがとうございます。

引用:
-------------------------------------------------
SunJavaのZipは、日本語だめみたいですよ
私のやった仕事(4年位前)での回避方法は、
JavaプログラムからOSのzipコマンド実行してました。
-------------------------------------------------

日本語・・・ダメなんですか。OSのzipコマンド??
文字化け回避は難しそうですね。。。

アドバイスありがとうございました。

IB
会議室デビュー日: 2005/09/03
投稿数: 18
お住まい・勤務地: 神奈川
投稿日時: 2005-09-23 15:25
度々すみません。

例えばなんですが・・・。
圧縮後、zipフォルダ内のファイルをpathで辿り、文字バケしているファイル名を
正規の2byte文字に変更する事は可能でしょうか?

強引すぎるかな。。。
coasm
大ベテラン
会議室デビュー日: 2001/11/26
投稿数: 237
投稿日時: 2005-09-25 19:23
java.util.zip パッケージの機能をそのまま使うと、
ファイル名(フォルダ名)がUTF-8でエンコードされてしまうので、
日本語Windowsとの互換性がありません。
(「日本語が使えない」わけではないので、誤解なきよう)

MS漢字コードでエンコードしたければ、Yamaさんが指摘しておられる
org.apache.tools.zip を使うのが手っ取り早いでしょう。

# 1.5になって改善されたかと期待したけど、
# 相変わらずUTF-8決め打ちなのね >java.util.zip
IB
会議室デビュー日: 2005/09/03
投稿数: 18
お住まい・勤務地: 神奈川
投稿日時: 2005-09-25 22:12
coasmさん、こんばんは。
ご返信ありがとうございます。

現状での[java.util.zip]では、2byteファイル名の
文字化けは回避できないんですね。。。

ただ、それが分かっただけでも大変助かりました!
Yamaさん、coasmさん、本当にありがとうございました!
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2006-03-29 12:19
解凍の話はある。
ZIPファイル内の非UTF-8ファイル名
http://moyolab.blog57.fc2.com/blog-entry-23.html
BugParade
日本は元よりドイツ・スペイン・中国・韓国とあらゆる国から悲鳴が上がってます。

[ メッセージ編集済み 編集者: MMX 編集日時 2006-03-29 12:21 ]
1

スキルアップ/キャリアアップ(JOB@IT)