.zip file created by Java doesn't support Chinese(utf-8)

后端 未结 3 1768
一生所求
一生所求 2021-01-23 05:50

I want to create a .zip file using Java(jdk, ant.jar or commons-compress).

But if the ZipEntry\'s name contains non-English(eg. Chinese, Japanese), it will display unrea

3条回答
  •  猫巷女王i
    2021-01-23 06:39

    try this by using apache commons compress,

    import java.io.*;
    import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
    import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
    public class ZipFiles {  
       public static void main(String[] args) throws Exception{
           ZipArchiveOutputStream zipOut = new ZipArchiveOutputStream(new FileOutputStream("测试.zip"));
           zipOut.setEncoding("Cp437"); // This should handle your "special" characters
           zipOut.setFallbackToUTF8(true); // For "unknown" characters!
           zipOut.setUseLanguageEncodingFlag(true);                               
           zipOut.setCreateUnicodeExtraFields(
           ZipArchiveOutputStream.UnicodeExtraFieldPolicy.NOT_ENCODEABLE);
           zipOut.putArchiveEntry(new ZipArchiveEntry("测试.xml"));
           zipOut.putArchiveEntry(new ZipArchiveEntry("test.xml"));
           zipOut.closeArchiveEntry();
           zipOut.flush();
           zipOut.close();
       }
    }
    

提交回复
热议问题