res.setContentType("application/" + contentType + "; charset=GB2312");
res.setHeader("Content-Disposition", "attachment; filename=\"" + fileNm + "\"");
res.setHeader("Cache-Control", "max-age=0");os.write(exportData.getBytes("GB2312"));
部分代码如上
res是HttpServletResponse
现象是保存到本地正常excel里的sheet名也正常生成
但是直接打开的话sheet名出现乱七八糟的字符
res.setHeader("Content-Disposition", "attachment; filename=\"" + fileNm + "\"");
res.setHeader("Cache-Control", "max-age=0");os.write(exportData.getBytes("GB2312"));
部分代码如上
res是HttpServletResponse
现象是保存到本地正常excel里的sheet名也正常生成
但是直接打开的话sheet名出现乱七八糟的字符
还有.]都不知道怎么写进去的
---------------------------------------------------------
<%
java.io.BufferedInputStream bis=null;
java.io.BufferedOutputStream bos=null;
try{
String filename=request.getParameter("filename");
filename=new String(filename.getBytes("iso8859-1"),"gb2312");
response.setContentType("application/x-msdownload");
response.setHeader("Content-disposition","attachment; filename="+new String(filename.getBytes("gb2312"),"iso8859-1"));
bis =new java.io.BufferedInputStream(new java.io.FileInputStream(config.getServletContext().getRealPath("files/" + filename)));
bos=new java.io.BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];
int bytesRead;
while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff,0,bytesRead);
}
}
catch(Exception e){
e.printStackTrace();
}
finally {
if (bis != null)bis.close();
if (bos != null)bos.close();
}
%> 注意,关键就是setHeader里的filename需要重新编码,格式是ISO-8859-1就OK了