于是我在连接到下载程序的页面时进行了URL编码:
URL.Encoder.encode(name,"UTF-8");
然后在下载程序页面进行解码:
URL.Decoder.decode(name,"UTF-8");
程序如下:
<%
    String root = application.getRealPath("/");
    String name = request.getParameter("name");
    response.setContentType("unknown");
    response.addHeader("Content-Disposition", "filename=\"" + name + "\"");
    
    try
    {
        java.io.OutputStream    os  = response.getOutputStream();
        java.io.FileInputStream fis = new java.io.FileInputStream(root +"UpFiles\\"+ java.net.URLDecoder.decode(name,"UTF-8"));
        
        byte[] b = new byte[1024];
        int    i = 0;
        
        while ( (i = fis.read(b)) > 0 ) 
        {
            os.write(b, 0, i);
        }
        
        fis.close();
        os.flush();
        os.close();
    }
    catch ( Exception e )
    {
    }
%>
这样是可以下带中文名的文件了,但是文件名里的空格变成了+,我知道这是URL编码的原因,但我想知道怎么样弄才能将空格变回来,别告诉我用字符串的处理方法来弄。
谢谢各位!!!!!!!!!!!