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

  • 相关阅读:
    onLoad和DomContentLoad的区别
    懒加载和预加载区别
    各大浏览器特点
    移动端适配
    清除浮动的方法
    rem的计算
    粗结MySql数据库基础知识点之一
    单例模式(饿汉式单例模式与懒汉式单例模式)
    关于ajax技术
    浅谈EL与JSTL
  • 原文地址:https://www.cnblogs.com/TheoryDance/p/5435661.html
Copyright © 2011-2022 走看看