如题。
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String str=new String(request.getParameter("returnInfo").getBytes("8859_1"));
String name=new String(request.getParameter("filename").getBytes("8859_1"));
这里name应该为健康表
System.out.println("name: "+name);
response.setContentType("application/vnd.ms-excel");
String filename="attachment;filename=/"+name;
response.addHeader("Content-Disposition",filename);
response.getWriter().print(str);
response.getWriter().flush();
response.getWriter().close();
name显示正确中国字。但是出现下载框时,没有出现想要的excel类型和中文filename,而是未知文件类型,默认的是英文文件名而不是想要的“健康表”
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String str=new String(request.getParameter("returnInfo").getBytes("8859_1"));
String name=new String(request.getParameter("filename").getBytes("8859_1"));
这里name应该为健康表
System.out.println("name: "+name);
response.setContentType("application/vnd.ms-excel");
String filename="attachment;filename=/"+name;
response.addHeader("Content-Disposition",filename);
response.getWriter().print(str);
response.getWriter().flush();
response.getWriter().close();
name显示正确中国字。但是出现下载框时,没有出现想要的excel类型和中文filename,而是未知文件类型,默认的是英文文件名而不是想要的“健康表”
解决方案 »
- 急求软件(JAVA)测试工程师简历
- 单例模式的疑问?多用户同时访问一个实例,会不会出现问题?
- derby数据库开发问题
- Spring中的SpringMVC,Spring Portal MVC和Spring Web Flow三者间的关系?
- request 获得服务器信息
- javaMail问题
- 将XML文件的节点拆分出来,求解决
- 技术面试题大汇总
- struts里面怎么获得不确定的文本框、下拉框的值?
- 如果已经写好了webservice函数和接口,如何写客户端java文件(有main函数)测试?
- jsp onclick调用
- org.springframework.transaction.CannotCreateTransactionException:
private String parse(String s) {
StringBuffer sb = new StringBuffer();
char c;
for (int i = 0; i < s.length(); i++) {
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) {
logger.error("ConsumeSortAction.parse " + ex);
b = new byte[0];
}
int k=0;
for (int j = 0; j < b.length; j++) {
k= b[j];
if (k < 0)
k += 256;
sb.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return sb.toString();
}
转码绝对好用
你自己name没有带后缀,人家下载一个叫 健康表的文件,肯定是未知类型啦
String name=new String(request.getParameter("filename").getBytes("8859_1"));
//name=URLEncoder.encode(name,"GB2312");
System.out.println(name);
response.setContentType("application/vnd.ms-excel");
String filename="attachment;filename=/"+name+".xls";
System.out.println(filename);
filename=URLEncoder.encode(filename,"utf-8");
response.addHeader("Content-Disposition",filename);
response.getWriter().print(str);
response.getWriter().flush();
response.getWriter().close();
输出的filename为:attachment;filename=/学校体育成绩.xls
但弹出的下载框中默认名不是/学校体育成绩.xls???而是英文乱码