① 如何解决java程序解压含有中文名的zip压缩包出现乱码
上次利用java自动的java.util.zip.ZipEntry和�0�2java.util.zip.ZipFile来解压zip文件,今天发现程序在读取解压文件时居然报了空指针异常,debug程序后发现时读取不到文件,产生原先是zip压缩文件中含有中文的名称,读取文件名为乱码,
报找不到文件名,所以报了空指针,想到ant构建文件也有这个功能,换了apache的ant.jar居然解决了中文的问题。
备份下。
�0�2import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Enumeration;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;/*** 读取zip压缩文件中文本的内容
* @author fish*/public class ReadZip {
public static void main(String args[]) {try {String fileName = "D:/workspace/java/src/ReadZip.zip";
//构造ZipFile
ZipFile zf = new ZipFile(new File(fileName));
//返回 ZIP file entries的枚举.
Enumeration<? extends ZipEntry entries = zf.getEntries();
while (entries.hasMoreElements()) {
ZipEntry ze = entries.nextElement();
System.out.println("name:"+ze.getName());
long size = ze.getSize();
if (size 0) {
System.out.println("Length is " + size);
BufferedReader br = new BufferedReader(
new InputStreamReader(zf.getInputStream(ze)));
String line;
while ((line = br.readLine()) != null) {
② java用apache的ZipEntry压缩文件名为中文的word文件时,文件名乱码
对于输出zip文件的ZipOutputStream对象设置一下编码:
ZipOutputStreamout=newZipOutputStream(newFileOutputStream(
zipFileName));
//设置filenames的编码
out.setEncoding("UTF-8");
通常linux下使用utf8进行文件命名编码,而windows下采用gbk,根据你的系统情况而定
可参考下api:
http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/api/org/apache/tools/zip/ZipOutputStream.html
③ 请问用java编写一个压缩程序,怎样解决压缩文件zip里的文件名乱码问题!
没做过压缩程序,JAVA里面的字符串使用的编码为unicode,ZIP文件里面用的应该是本地编码(中文操作系统用的是GB2312)。
你可以尝试着用类似这样的语句:String str = ( otherStr.getBytes("GB2312") );
祝好运。
④ java tar压缩 中文乱码怎么解决
我一般都是用writeUTF()方法往文件里写东西 File file = new File("......."); FileOutputStream fos = new FileOutputStream(file); DataOutputStream dos = new DataOutputStream(fos); dos.writeUTF("blablabla");
⑤ 请大神帮忙解决一个用java解压缩一个zip压缩格式字节流中文内容乱码问题!
服务器端一般不是采用的是gzip吗。
⑥ 如何解决java程序解压含有中文名的zip压缩包出现乱码
上次利用java自动的java.util.zip.ZipEntry和�0�2java.util.zip.ZipFile来解压zip文件,今天发现程序在读取解压文件时居然报了空指针异常,debug程序后发现时读取不到文件,产生原先是zip压缩文件中含有中文的名称,读取文件名为乱码,
报找不到文件名,所以报了空指针,想到ant构建文件也有这个功能,换了apache的ant.jar居然解决了中文的问题。
备份下。
�0�2import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Enumeration;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;/*** 读取zip压缩文件中文本的内容
* @author fish*/public class ReadZip {
public static void main(String args[]) {try {String fileName = "D:/workspace/java/src/ReadZip.zip";
//构造ZipFile
ZipFile zf = new ZipFile(new File(fileName));
//返回 ZIP file entries的枚举.
Enumeration<? extends ZipEntry entries = zf.getEntries();
while (entries.hasMoreElements()) {
ZipEntry ze = entries.nextElement();
System.out.println("name:"+ze.getName());
long size = ze.getSize();
if (size 0) {
System.out.println("Length is " + size);
BufferedReader br = new BufferedReader(
new InputStreamReader(zf.getInputStream(ze)));
String line;
while ((line = br.readLine()) != null) {
⑦ java 中文乱码问题。崩溃了快。
你好,帮你看了一晚上,一直以为是程序转码的问题,看了半天的API和源码,均没有找到可以设置字符编码的地方。上网一查,原来是jdk的问题,网上是这样解释的:
上网查了下,有两种方法,一种修改jdk ZipInputStream及ZipOutputStream 的源文件,比较麻烦,不建议此项.第二种 就是拿来主义,因为 开源项目 Ant 里已经有现成的实现.把ant.jar 加入到 工程下的lib目录即可.
在调试的过程中,发现了一些问题,帮你改正了下,你的程序打包后,里面的层次关系错乱了。只需要将其中的一句改为:
fileIn = new FileInputStream(fileName);
String entryName = fileName.getPath(); //这句,将fileName.getName()修改为getPath
// 生成的压缩包存放在原目录下
zipEntry = new ZipEntry(entryName) ;
这样就正常了。
⑧ java压缩中文zip,系统winrar解压改中文zip会出现乱码
建议 使用 apache ant 工具包来做压缩,能完美的解决中文乱码问题
⑨ 用java压缩文件,中文文件名成了乱码。 问题应该是出在流里了。 要怎么解决呢
我一般都是用writeUTF()方法往文件里写东西
File file = new File(".......");
FileOutputStream fos = new FileOutputStream(file);
DataOutputStream dos = new DataOutputStream(fos);
dos.writeUTF("blablabla");
⑩ Java zip 解压文件中文 乱码问题.. 跪求大神解答
字符格式需要进行转码了