JSP?不过就是java也一样,你重新给字符串编码就成了。
String dest = new String(src.getBytes("ISO-8859-1"), "UTF8");

解决方案 »

  1.   

    我的程序具体是这样的,这是一个压缩的文件的程序,但是解压缩了就成了乱码,请高手指点程序是:
    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();
            }
        }}
      

  2.   

    FileOutputStream中将中文文件名按字节进行了UTF-8编码,读出来当然是乱码了,解决办法或者修改jdk中的源代码,把修改后的java文件编译后放到jdk中,或者写一个自己的FileOutputStream替代jdk中的。
      

  3.   

    不好意思,昨天匆忙中输入错了,应该是ZipInputStream 类中的问题导致了乱码错误。所以的解决方案都是对ZipInputStream 类进行修改。
      

  4.   

    出现乱码主要是ZipInputStream 中的getUTF8String(byte[] b, int off, int len)函数的问题,将这个函数中的所以代码注释掉,直接返回参数中的字节码组成的字符串就可以了。你可以将修改后的ZipInputStream 添加到jdk相应的包中或者把相关的类一并提取出来作为自己的类使用。