String filename=new String(request.getParameter("filename").getBytes("GB2312"),"ISO8859_1"); 
这一行改一下试试,注意大小写

解决方案 »

  1.   

    response.setContentType("application/octet-stream; charset=iso-8859-1");
      

  2.   

    问题终于解决了!
    把String filename=new String(request.getParameter("filename").getBytes("iso8859-1"),"gb2312")改成String filename=new String(request.getParameter("filename").getBytes("GB2312"),"ISO8859_1")仍然不行,发生空指针错误。
    但把response.setHeader("Content-disposition","attachment;filename=\""+filename+"\"");  一行改为response.setHeader("Content-disposition","attachment;filename=\""+new String(filename.getBytes("GB2312"),"ISO8859_1")+"\"")问题就解决了。
    多谢kk_wyx(桃花岛)的提示!