fileName= new String(fileName.getBytes("GBK"),"8859_1");

解决方案 »

  1.   

    fileName= new String(fileName.getBytes("UTF-8"),"8859_1");
    可以解决IE中的问题 但是火狐中的问题还是解决不了
      

  2.   

    解决了:
    先在页面做下判断,判断是什么浏览器,然后传一个参数到servlet,进行用不同的编码方式:
    火狐的:
    response.addHeader("Content-Disposition", "attachment;filename="+ new String(fileName.getBytes("GB2312"),"ISO8859-1"));
    IE:
    response.addHeader("Content-Disposition", "attachment; filename="+ URLEncoder.encode(fileName, "UTF-8")); 
    及其他
      

  3.   

    String header = ServletActionContext.getRequest().getHeader(
    "User-Agent");
    // 如果是火狐
    if (header.contains("Firefox")) {
    filedisplay = new String(filedisplay.getBytes(), "iso8859-1");
    } else {
    // IE要用URL编码格式
    filedisplay = URLEncoder.encode(filedisplay, "UTF-8");
    }