51,411
社区成员
发帖
与我相关
我的任务
分享Charset charset = Charset.forName("utf-8");
ZipInputStream zin = new ZipInputStream(in,charset);
这样读取XLSX文件时,汉字是乱码
public static void main(String[] args) throws IOException {
String path = "E:\\study.xlsx";
ZipFile zf = new ZipFile(path);
InputStream in = new BufferedInputStream(new FileInputStream(path));
//Charset gbk = Charset.forName("gbk");
//ZipInputStream zin = new ZipInputStream(in,gbk);
Charset gbk = Charset.forName("utf-8");
ZipInputStream zin = new ZipInputStream(in,gbk);
//ZipInputStream zin = new ZipInputStream(in);
ZipEntry ze;
String v_fileou="out.txt";
//BufferedWriter br_writer=new BufferedWriter(new FileWriter(v_fileou,true),1048576);
BufferedWriter br_writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(v_fileou)),"utf-8"));
while((ze = zin.getNextEntry()) != null)
{
System.out.println(ze.toString());
//if(ze.toString().endsWith("xml"))
if (ze.toString().equals("xl/sharedStrings.xml"))
{
BufferedReader br = new BufferedReader(new InputStreamReader(zf.getInputStream(ze),"GBK"));
String line;
while((line = br.readLine()) != null){
br_writer.write(line);
System.out.println(line.toString());
}
br.close();
}
System.out.println();
}
zin.closeEntry();
br_writer.flush();
br_writer.close();
}
}