关于文件下载出现乱码问题

    技术2022-05-20  43

     if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0)     filename = new String(filename.getBytes("GB2312"), "ISO8859-1");// firefox浏览器    else if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0)     filename = URLEncoder.encode(filename, "UTF-8");// IE浏览器    response.reset();// 如果有换行,对于文本文件没有什么问题,但是对于其它格        response.setContentType("application/x-msdownload;charset=GBK");            System.out.print(response.getContentType());           response.setCharacterEncoding("UTF-8");           response.setHeader("Content-Disposition", "attachment; filename=" +new String(filename.getBytes("UTF-8"),"GBK"));////           response.setContentType("application/octet-stream");//   response.setHeader("Content-Disposition", "attachment;filename=/""//     + filename + "/"");////   response.setHeader("Connection", "close");

       ServletOutputStream sos = response.getOutputStream();

       FileInputStream fis = null;   File d = new File("D:/"+feedback.getId()+"/"+fb.getRtName());//   File d=new File(fb.getRtPath());   try{   if (d.exists())   {    fis = new FileInputStream("D:/"+feedback.getId()+"/"+fb.getRtName());//    fis = new FileInputStream(fb.getRtPath());    byte b[] = new byte[1000];    int j;    while ((j = fis.read(b)) != -1)    {     try     {      sos.write(b, 0, j);     }     catch (IOException exp) {

         }    }   }    fis.close();   sos.flush();   sos.close();   }catch (Exception e) {   String mailOK="下载失败";   request.getSession().setAttribute("mailOK", mailOK);   }


    最新回复(0)