Cómo resolver el problema de los caracteres confusos cuando el programa Java descomprime el paquete zip que contiene nombres chinos
La última vez utilicé java.util.zip.ZipEntry y?0?2java.util.zip.ZipFile automáticos de Java para descomprimir el archivo zip. Hoy descubrí que el programa en realidad informó un puntero nulo al leer. Excepción del archivo descomprimido, el programa de depuración encontró que el archivo no se podía leer. El archivo zip original contenía un nombre chino y el nombre del archivo leído estaba confuso.
Informó que el nombre del archivo no se podía leer. Se encontró, por lo que informó un puntero vacío. Pensé que el archivo de compilación ant también tiene esta función, y cambiar el ant.jar de Apache en realidad resolvió el problema chino.
Hacer copia de seguridad. 0?2importar java.io.BufferedReader;
importar java.io.File;
importar java.io.IOException;
importar java.io.InputStreamReader ;
importar java.util.Enumeration;
importar org.apache.tools.zip.ZipEntry;
importar org.apache.tools.zip.ZipFile ;/*** Leer el contenido del texto en el archivo comprimido zip
* @author fish*/public class ReadZip {
public static void main(String args[]) {try {String fileName = "D:/workspace/java/src/ReadZip.zip";
//Construir ZipFile
ZipFile zf = new ZipFile(new File(fileName));
//Devuelve la enumeración de entradas del archivo ZIP.
Enumerationlt;? extends ZipEntry entradas = zf.getEntries();
while (entries.hasMoreElements( )) {
ZipEntry ze = entradas.nextElement();
System.out.println("nombre: " ze.getName());
tamaño largo = ze.getSize();
if (tamaño 0) {
System.out.println("La longitud es " tamaño);
BufferedReader br = new BufferedReader(
new InputStreamReader(zf.getInputStream(ze)));
Línea de cadena;
while ((line = br.readLine( )) != nulo) {