如何让程序产生的乱码正确显示? JSP?不过就是java也一样,你重新给字符串编码就成了。String dest = new String(src.getBytes("ISO-8859-1"), "UTF8"); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的程序具体是这样的,这是一个压缩的文件的程序,但是解压缩了就成了乱码,请高手指点程序是:package com.guanda.oa.util;import java.util.zip.*;import java.io.*;import java.util.*;public class CompressT{ public CompressT() {} public static void main(String[] args) { CompressT.UnZipFile("e:\\testzip\\test.zip"); } public static void UnZipFile(String filename) { int BUFFER = 1024*10; try { BufferedOutputStream bos = null; FileInputStream fis = new FileInputStream(filename); BufferedInputStream bis = new BufferedInputStream(fis); ZipInputStream zis = new ZipInputStream(bis); int count; ZipEntry entry; while ( (entry = zis.getNextEntry()) != null) { FileOutputStream fos = new FileOutputStream(entry.getName()); bos = new BufferedOutputStream(fos, BUFFER); byte data[] = new byte[BUFFER]; while ( (count = zis.read(data, 0, BUFFER)) != -1) { bos.write(data, 0, BUFFER); } } //bos.close(); //zis.close(); } catch (Exception e) { e.printStackTrace(); } }} FileOutputStream中将中文文件名按字节进行了UTF-8编码,读出来当然是乱码了,解决办法或者修改jdk中的源代码,把修改后的java文件编译后放到jdk中,或者写一个自己的FileOutputStream替代jdk中的。 不好意思,昨天匆忙中输入错了,应该是ZipInputStream 类中的问题导致了乱码错误。所以的解决方案都是对ZipInputStream 类进行修改。 出现乱码主要是ZipInputStream 中的getUTF8String(byte[] b, int off, int len)函数的问题,将这个函数中的所以代码注释掉,直接返回参数中的字节码组成的字符串就可以了。你可以将修改后的ZipInputStream 添加到jdk相应的包中或者把相关的类一并提取出来作为自己的类使用。 java多态问题?菜鸟,求各位大神指点! 关于并行计算 executeBatch()问题 msn的振动闪屏...急急急!!!!谢谢拉 浏览文件例子(高手请进.) JTable + Vector 问题! 谢谢帮忙解决哈!!! Swing_JTree问题。。 这个程序为啥不能运行 各位认为丘仲潘翻译的书怎么样? 获取到图片的二进制流,我如何通过这个流信息能知道它是什么类型的图片呢?是bmp,jpg等 如何控制字数个数??? 关于java.util.Timer的问题讨论,高手进来看看
package com.guanda.oa.util;import java.util.zip.*;
import java.io.*;
import java.util.*;public class CompressT
{
public CompressT()
{} public static void main(String[] args)
{ CompressT.UnZipFile("e:\\testzip\\test.zip");
} public static void UnZipFile(String filename)
{
int BUFFER = 1024*10;
try
{
BufferedOutputStream bos = null;
FileInputStream fis = new FileInputStream(filename);
BufferedInputStream bis = new BufferedInputStream(fis);
ZipInputStream zis = new ZipInputStream(bis); int count;
ZipEntry entry; while ( (entry = zis.getNextEntry()) != null)
{
FileOutputStream fos = new FileOutputStream(entry.getName());
bos = new BufferedOutputStream(fos, BUFFER);
byte data[] = new byte[BUFFER];
while ( (count = zis.read(data, 0, BUFFER)) != -1)
{
bos.write(data, 0, BUFFER);
}
}
//bos.close();
//zis.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}}