下载文件中文名出现乱码 java

//--------------------------------------------------------
//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();
}


//--------------------------------------------------------
//2 最近看了一下,发现解决乱码不用关心浏览器,可以简单搞定
//--------------------------------------------------------
  String filename= "..."; //文件名
  String path = "../../.."; //路径
  response.setContentType("octets/stream");
  response.addHeader("Content-Type", "text/html; charset=utf-8");
  String downLoadName = new String(filename.getBytes("gbk"), "iso8859-1");
  response.addHeader("Content-Disposition", "attachment;filename="
+ downLoadName);
//以下加入输出代码就好了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值