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"方式的时候,在确定界面显示的就是中文名称。

  • 相关阅读:
    语文文法
    1223 递归下降语法分析程序设计
    有穷的自动机构造
    文法分析
    text
    0916 词法分析(3)
    "firstday"-软件工程
    实验四 递归下降语法分析程序设计
    构造该正规式的有穷状态自动机
    评论
  • 原文地址:https://www.cnblogs.com/TheoryDance/p/5435661.html
Copyright © 2011-2022 走看看