您的位置:首页 > 其它

解决ie和其他浏览器poi下载excel文件名乱码

2016-04-13 17:50 295 查看
 使用poi,做传统的excel导出,然后想在浏览器中,让用户选择另存为,保存用户下载的xls文件,这个时候,可能的是在ie下出现乱码(ie,9,10,11),但在firefox,chrome下没乱码, 

因此必须综合判断,编写一个工具类: 

    

Java代码  


/** 

     *  

     * @Title: processFileName 

     *  

     * @Description: ie,chrom,firfox下处理文件名显示乱码 

     */  

    public static String processFileName(HttpServletRequest request, String fileNames) {  

        String codedfilename = null;  

        try {  

            String agent = request.getHeader("USER-AGENT");  

            if (null != agent && -1 != agent.indexOf("MSIE") || null != agent  

                    && -1 != agent.indexOf("Trident")) {// ie  

  

                String name = java.net.URLEncoder.encode(fileNames, "UTF8");  

  

                codedfilename = name;  

            } else if (null != agent && -1 != agent.indexOf("Mozilla")) {// 火狐,chrome等  

  

  

                codedfilename = new String(fileNames.getBytes("UTF-8"), "iso-8859-1");  

            }  

        } catch (Exception e) {  

            e.printStackTrace();  

        }  

        return codedfilename;  

    }  

   然后,

Java代码  


response.setHeader("Cache-Control", "private");  

response.setHeader("Pragma", "private");  

response.setContentType("application/vnd.ms-excel;charset=utf-8");  

response.setHeader("Content-Type", "application/force-download");  

  

title = FileUtil.processFileName(request, title);  

response.setHeader("Content-disposition", "attachment;filename=" + title + ".xls");  

  就可以解决了,注意判断是否ie的时候,ie 11的agent是Trident
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  poi 乱码 ie