zoukankan      html  css  js  c++  java
  • 手机在下载文件时乱码问题

    现象:在电脑上,使用IE,Chrome下载文件,文件名均正常

    在部分手机上下载是正常的,但是在部分手机上显示出现乱码

    String user_agent = request.getHeader("user-agent");
    String fname = "";
    
    // 主要是下面这段代码起作用
    boolean flag = user_agent.indexOf("like Gecko")>0;
    if(user_agent.toLowerCase().indexOf("msie")>0||flag){
        fname = URLEncoder.encode(fileName, "UTF-8");
    }else{
        fname = new String(fileName.getBytes(),"iso8859-1");
    }
    
    String downType = session.getServletContext().getMimeType(fileName);
    response.setHeader("Content-type", downType);
    response.setHeader("Content-Disposition", "attachment;filename="+fname);
    
    String fileUrl = session.getServletContext().getRealPath("/")+filePath;
    MyLog4j.logger.info("文件真实路径:"+fileUrl);
    File f = new File(fileUrl);
    FileInputStream input = new FileInputStream(f);
    OutputStream out = response.getOutputStream();
    IOUtils.copy(input, out);
    IOUtils.closeQuietly(input);
    input.close();    

    但是在手机上,出现了一种显现:下载后文件正常,但是在下载界面让用户确定下载时,显示的文件名为%....的形式,没有显示中文名称。如果是"iso8859-1"方式的时候,在确定界面显示的就是中文名称。

  • 相关阅读:
    SpringCloud-sleuth-zipkin链路追踪
    关于encodeURI() 踩的坑
    兄弟ifream的方法调用
    jq为什么能用$操作
    js获取一周的日期范围
    layui中实现上传图片压缩
    input预览上传图片
    js获取地址栏参数
    计算两天之间的天数差
    文字始终均匀分布整个div
  • 原文地址:https://www.cnblogs.com/TheoryDance/p/5435661.html
Copyright © 2011-2022 走看看