jsp导出excel文件,导出时firefox乱码或360乱码,反正不正常,
原本代码如下:
response.setHeader("Content-Disposition", "attachment;filename="
+ new String(("财务报表-采购明细统计.xls").getBytes(), "ISO-8859-1"));
这时firefox是好的,我也没测IE、360啥的
第一次提交就是这样,我相信大家也都是这个样子的,
会计说她IE打开时乱码,我就搜了一下,网上大部分提供了一个方法:
public static String toUtf8String(String s){
StringBuffer sb = new StringBuffer();
for (int i=0;i<s.length();i++){
char c = s.charAt(i);
if (c >= 0 && c <= 255){sb.append(c);}
else{
byte[] b;
try { b = Character.toString(c).getBytes("utf-8");}
catch (Exception ex) {
System.out.println(ex);
b = new byte[0];
}
for (int j = 0; j < b.length; j++) {
int k = b[j];
if (k < 0) k += 256;
sb.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return sb.toString();
}
jsp里面代码如下:
response.setHeader("Content-Disposition", "attachment;filename="
+ fb.toUtf8String("财务报表_支付宝汇总.xls"));
可是并没有解决问题,但是大部分网页搜出来的都是这样的,
这时才发现是浏览器的问题
解决方案代码如下:
<%@page import="java.net.URLEncoder"%>
String outfilename = "财务报表.xls";
if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0)
outfilename = new String(outfilename.getBytes("UTF-8"), "ISO8859-1");//firefox
else if (request.getHeader("User-Agent").toUpperCase().indexOf("IE") > 0)
outfilename = URLEncoder.encode(outfilename, "UTF-8");//IE浏览器
response.setHeader("Content-Disposition", "attachment;filename="+outfilename);
这才是王道
分享到:
相关推荐
jsp导出Excel;简单实用!导出Excel;导出Word jsp导出Excel;简单实用!导出Excel;导出Word jsp导出Excel;简单实用!导出Excel;导出Word
jsp导出excel一般性问题及解决办法
jsp页面导出excel的实现相关代码,是从整个项目中把相关的几个页面拿出来分享一下
JSP导出excel和pdf格式JSP导出excel和pdf格式
jsp导入导出excel文件用的是poi和学习心得
java及jsp下导出excel表格,真心好用
一种很简单的将JSP页面的table导出excel的方法
本人试过了可以用,做jsp程序导出excel功能的可以参考下,下载后按照模版进行修改
jsp导出excel并支持分sheet导出的方法.docx
JSP导出Excel
关于jsp导出excel用javascript实现
查询数据跳转到当前的jsp,通过获取后台的接口数据导出excel文件,最后再自动跳转到上一个的页面。
JSP中导入导出Excel文件.txt
Flex的DataGrid导出Excel
如何在jsp导出到Excel文件
JSP运用模板导出Excel.doc
java实现JSP表格数据导出到EXCEL文件
使用JSP、Struts2和jquery实现简单查询,分页,导出到Excel并保存到本地计算机。(数据库相关内容在webroot下db文件夹内)
最近实验室做了一个项目,使用jspsmartupload来实现的文件的上传下载,原来在windows平台运行的挺好,但是后来系统移植到linux平台上,结果在上传或下载的文件名中有中文时就会出现乱码。后来查了网上一些人的解决...