2017-05-03 16 views
1

Javaを使用してメインzip(名前finalZip.zip)内にいくつかのzipファイルを作成しています。これらのファイル名にはáóçのような文字があります。 zipファイルを作成しようとすると、ファイルの名前が間違っています。たとえば、とき3-ORDINÁRIA-2017-05-03.zip、それは3-ORDIN +üRIA-2017-05-03.zipZipEntry UTF-8文字セット

String zipName= number + "- ORDINÁRIA -" + sdf.format(sdfComplete.parse(date.getTime()) + ".zip"; 

ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
ZipOutputStream zip = new ZipOutputStream(bos); 
try { 
    bos = createZipFile(); // populate each zipFile with some images 
    // generating zip file, ex: 6-ORDINÁRIA-2017-03-15.zip 
    zipFinal.putNextEntry(new ZipEntry(zipName)); 
    zipFinal.write(bos.toByteArray()); 
    zipFinal.closeEntry(); 
} 

... 

来る私はUTF-8文字セットでzipファイルをしたいです。この文字セットの問題を解決するにはどうすればよいですか?

答えて

0

public ZipOutputStream(OutputStream out, Charset charset)コンストラクタを使用して、エントリ名とコメントの両方の文字セットを指定します。

メソッドのjavadocは:

は新しいZIP出力ストリームを作成します。

パラメータ:文字セットは、エントリ名をエンコードするために使用される

アウト実際の出力ストリーム

文字セットおよび例えば

コメントこれはUTF-8を使用し文字セット:

ZipOutputStream zip = new ZipOutputStream(bos, java.nio.charset.StandardCharsets.UTF_8); 
+0

私のZipOutputStreamは1つのコンストラクタ(OutputStream)しか受け付けません。私のJavaのバージョンは、一種の古いと思われる – aseolin

+0

たぶん。 1.7以降利用可能です。あなたはいますか? – davidxxx

+0

私は1.8ですが、StandardCharsetsをインポートすると、UTF_8定数が定義されていません – aseolin

関連する問題