您的位置:首页 > 编程语言 > Java开发

java 下载文件时中文出现乱码解决方案

2013-09-27 10:49 585 查看
//-------------------------------------------------------- 
//1 根据不同浏览器区分解决乱码 
//-------------------------------------------------------- 
String filename= "..."; //文件名 
String path = "../../.."; //路径 
 
//获取浏览器类型 :Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16 (.NET CLR 3.5.30729) 
String agent = request.getHeader("USER-AGENT");   
String downLoadName = null; 

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

{   
  downLoadName = java.net.URLEncoder.encode(filename,
"UTF-8");  
}   
  else if (null != agent && -1 != agent.indexOf("Mozilla"))//Firefox 

{       
  downLoadName = new String(filename.getBytes("UTF-8"),"iso-8859-1");    
}   
else    

  downLoadName = java.net.URLEncoder.encode(filename,
"UTF-8");  
}   
response.setHeader("Content-disposition","attachment;filename=" 

                + downLoadName ); 
response.setContentType("application/vnd.ms-excel;charset=UTF-8"); 
 
//以下就是文件输出代码了 
try { 
  FileInputStream fileInputStream = new FileInputStream(path 
                    + filename); 
  OutputStream out = response.getOutputStream(); 
  int i = 0; 
  while ((i = fileInputStream.read()) != -1) { 
    out.write(i); 
  } 
  fileInputStream.close(); 
} catch (Exception e) { 
  e.printStackTrace(); 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: