jsp 导出excel文件,文件名含有中文 出现乱码 解决方案
方案一:
public 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();
}
测试方法:
String utf8;
try {
utf8 = new String(toUtf8String("全部合计_2011_4_17.xls").getBytes(), "UTF-8");
System.out.println("utf8******1**********"+utf8);//结果为:utf8******1**********%E5%85%A8%E9%83%A8%E5%90%88%E8%AE%A1_2011_4_17.xls
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
原理是:浏览器或迅雷它们不能直接识别中文字符,虽然你在导出页面上已把中文字符转为utf-8编码格式了,但是浏览器或迅雷还是不能识别的,只有类似%E5%85%A8%E9%83%A8%E5...编码格式它们才能识别。
方案二: URLEncoder.encode(f.getName(),"UTF-8");
原理: 把要被下载的文件的文件名转成utf-8格式的,能够让浏览器或迅雷识别的名字。
分享到:
相关推荐
jsp导入导出excel文件用的是poi和学习心得
jsp导出Excel;简单实用!导出Excel;导出Word jsp导出Excel;简单实用!导出Excel;导出Word jsp导出Excel;简单实用!导出Excel;导出Word
jsp实现文件下载与中文文件名乱码问题解决
jsp导出excel一般性问题及解决办法
JSP中导入导出Excel文件.txt
JSP乱码解决方案大家可以看看,可以有利于大家,在JSP页面乱码问题,扥到更好的解决方案
jsp页面导出excel的实现相关代码,是从整个项目中把相关的几个页面拿出来分享一下
JSP导出excel和pdf格式JSP导出excel和pdf格式
如何在jsp导出到Excel文件
JSP乱码 N种解决方案
多文件上传例子,彻底解决中文乱码问题了。总结中文乱码问题如下: 1、所有页面都用UTF-8。 2、写过滤器,设置request.setCharacterEncoding("UTF-8")。 3、javascript脚本里用encodeURI(str)。 4、适当的时候,在...
java及jsp下导出excel表格,真心好用
查询数据跳转到当前的jsp,通过获取后台的接口数据导出excel文件,最后再自动跳转到上一个的页面。
java实现JSP表格数据导出到EXCEL文件
最近实验室做了一个项目,使用jspsmartupload来实现的文件的上传下载,原来在windows平台运行的挺好,但是后来系统移植到linux平台上,结果在上传或下载的文件名中有中文时就会出现乱码。后来查了网上一些人的解决...
SP中导入导出Excel文件
jsp页面可以批量上传多个excel...并将信息展现在jsp页面表格里,勾选多个数据,可以导出excel文件。很方便,很实用!(每一行数据,就相当于表格里的某张表的一条信息,后期只要改下表结构,数据库,实体类,即可!)
使用jsp下载excel文件 JSP文件下载后台生成的excel文件到本地机。
主要介绍了JSP页面传参出现中文乱码的解决方案,非常实用,需要的朋友可以参考下
一种很简单的将JSP页面的table导出excel的方法