精华内容
下载资源
问答
  • FireFox浏览器导出文件名乱码,原因剖析与解决
    展开全文
  • 解决方案1 String codedFileName = "导出文件名.xls"; String agent = request.getHeader("USER-AGENT"); if(agent != null && agent.toLowerCase().indexOf("firefox") > 0) { ...

    解决方案1

    String codedFileName = "导出文件名.xls";
    String agent = request.getHeader("USER-AGENT");
                if(agent != null && agent.toLowerCase().indexOf("firefox") > 0)
                {
                    codedFileName = "=?UTF-8?B?" + (new String(Base64Utils.encodeToString(codedFileName.getBytes("UTF-8")))) + "?=";
                } else {
                    codedFileName =  java.net.URLEncoder.encode(codedFileName, "UTF-8");
                }
    response.setHeader("Content-Disposition", "attachment;filename=" + codedFileName);

    解决方案2

    response.setHeader("Content-Disposition", "attachment;filename*=utf-8'zh_cn'" + codedFileName);

    转载于:https://www.cnblogs.com/jiangwenwen1/p/9712995.html

    展开全文
  • 解决浏览器导出Excel文件名乱码问题

    千次阅读 2018-11-16 09:24:21
    导出的时候需要设置: response.setHeader("Content-Disposition", "...导出文件用这种方式设置文件名在所有浏览器下才不会乱码   rfc2231的规范: https://tools.ietf.org/ht...

    导出的时候需要设置:

    response.setHeader("Content-Disposition", "attachment;filename*=utf-8'zh_cn'" + URLEncoder.encode(fileName,"UTF-8"));

    导出文件用这种方式设置文件名在所有浏览器下才不会乱码

     

    rfc2231的规范:

    https://tools.ietf.org/html/rfc2231

     

    展开全文
  • 在使用poi方式导出文件的时候,由于浏览器的不同,可能会导致我们的文件名乱码,从而导致文件不能正常使用。基于这种情况,我们可以根据我们的浏览器来确定对文件名称设置编码,这样就可以解决文件名乱码导致文件不...

    问题描述:

    在不同浏览器中下载文件,因为浏览器编码格式的不同导致文件名乱码。

    解决:

    public void export(HttpServletRequest request,HttpServletResponse response, @RequestParam Map params) {
        String fileName = encodeFileName(params.get("fileName").toString(),request);// 调用encodeFileName()方法对文件名进行编码转换
            try {
            // 以流形式下载文件
                   ByteArrayOutputStream os = new ByteArrayOutputStream();
                   // 把创建好的workbook以字节流的形式写进缓冲中
                  
                   // 读取os字节数组
                   InputStream is = new ByteArrayInputStream(os.toByteArray());
                   // 设置response弹出下载框
                   // 清空response
                   response.reset();
                   response.setContentType("application/vnd.ms-excel;charset=utf-8");
                   response.setHeader("Content-Disposition", "attachment;fileName="+ fileName);
                   OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
                   BufferedInputStream bis = new BufferedInputStream(is);
                   // 获取缓冲数据
                   byte[] buffer = new byte[bis.available()];
                   int bytesRead;
                   while (-1 != (bytesRead = bis.read(buffer, 0, buffer.length))) {
                       toClient.write(buffer, 0, bytesRead);
                   }
                   toClient.flush();
                   bis.close();
                   toClient.close();
            
            } catch (Exception e) {
                e.printStackTrace();
                }
    }
    
    
    /**
    * 
    * @Title: encodeFileName
    * @Description: 导出文件转换文件名称编码
    * @param @param fileNames
    * @param @param request
    * @param @return    设定文件
    * @return String    返回类型
    * @throws
    */
    public static String encodeFileName(String fileNames ,HttpServletRequest request) {  
           String codedFilename = null;  
           try {  
               String agent = request.getHeader("USER-AGENT");
               if (null != agent && -1 != agent.indexOf("MSIE") || null != agent  
                       && -1 != agent.indexOf("Trident") || null != agent && -1 != agent.indexOf("Edge")) {// ie浏览器及Edge浏览器  
                   String name = java.net.URLEncoder.encode(fileNames, "UTF-8");  
                   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 ;  
       }
    

    展开全文
  • //获得浏览器信息并转换为大写 if (agent.indexOf("MSIE") > 0 || (agent.indexOf("GECKO") > 0 && agent.indexOf("RV:11") > 0)) { //IE浏览器和Edge浏览器 fileName = URLEncoder.encode(fileName, "UTF-8"); }...
  • PHP导出文件名乱码解决

    千次阅读 2019-08-01 13:03:00
    遇到ASCII命名的文件名时, 都是导出一切正常, 但是遇到中文文件名时,导出文件名乱码的。 此处直接贴出解决方案: 1. 文件名处理 因为PHP的urlencode函数会将各种空白字符转码为+号, 这个+号无论是chrome...
  • 导出文件时,如果文件名是带中文,不同浏览器下会出现不同中文乱码问题。以下代码,可解决IE、Edge、Chrome、Firefox浏览下导出中文文件名称的文件。 以便以后备用。import javax.servlet.http.HttpServletRequest; ...
  • 解决思路:通过请求头中的User-Agent参数中的信息来区分不同浏览器 1 public Object exportPz(HttpServletRequest request, HttpServletResponse response, Url url, UserDetails user, 2 Map<String, ...
  • 在编写excel文件导出程序的时候遇到一个奇怪的问题,就是在程序中给要导出的文件指定一个中文名字时,在浏览器上出现的下载框中的文件名出现了乱码,如何解决 [code="java"]httpServletResponse....
  • setFileDownloadHeader函数主要是根据当前用户的浏览器不同,对文件的名字进行不同的编码设置,从而解决不同浏览器文件名中文乱码问题  public static void setFileDownloadHeader(HttpServletRequest request...
  • 乱码主要是因为httpServletResponse的header编码问题, 但是,不同浏览器编码又不同, 经过测试,使用一下方法解决: 设置Response头信息编码 if ("IE".equals(getBrowser(request))) { fileName = new String...
  • Java解决导出文件文件名乱码

    千次阅读 2018-10-23 16:24:22
    //其他浏览器 } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return fileName; } @RequestMapping("exportTagDetail") public void exportTagDetail(HttpServletRequest ...
  • fileName =  new String(fileName.getBytes( "ISO8859-1"),  "UTF-8");     或者 String finalFileName = ...其他浏览器 }   转载于:https://www.cnblogs.com/valarchie/p/7648675.html
  • 导出文件名乱码(ie)

    千次阅读 2018-01-12 17:02:00
    if (userAgent.contains("msie") || userAgent.contains("like gecko") ) { // win10 ie edge 浏览器 和其他系统的ie fileName = URLEncoder.encode(fileName, "UTF-8"); } else { // fe fileName = new String...
  • 文件名中含有中文的文件下载,用谷歌、火狐、搜狗等浏览器都可以正常下载,但使用Windows自带的edge浏览器下载时文件名出现乱码问题。如下: 解决方案: 在输出头中的文件名进行urlencode编码处理。例如: ...
  • 安可系统,顾名思义,安全可靠,具体来说就是基于国产服务器...在文件导出的地方,文件名的中文出现了乱码。在windows系统的各个浏览器上都没有问题,分析可能还是编码方式不兼容。 以excel的导出为例:原来采用的的...
  • java 导出excel文件名乱码处理

    千次阅读 2017-10-13 17:42:09
    今天由于项目浏览器升级,在导出excel文件时出现excel文件名乱码问题,解决如下:
  • 使用IE8导出csv文件时文件名乱码了,查询资料后得到解决 简单来说,之前使用request获取header中的user-agent,通过MSIE关键字来判断是否是IE浏览器,如果是IE浏览器,使用utf-8对文件名编码就可以了。然而,IE11的...
  • //解决 苹果浏览器乱码问题 - val ua = request.getHeader("User-Agent").toLowerCase logger.info("ua:%s", ua) val filename = if (ua.indexOf("macintosh") > -1 && ua.indexOf("chrome") ) { logger.info(...
  • Java POI Excel导出文件名中文乱码

    千次阅读 2016-10-17 12:53:34
    在用POI进行excel表导出时,遇到中文文件名乱码问题,用下面的方法得到了解决。 转载自:https://my.oschina.net/chinamummy29/blog/525639 在导出前对名称根据浏览器做下处理 // 判断浏览器类型,firefox...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,118
精华内容 1,247
关键字:

解决浏览器导出文件名乱码