看你是什么浏览器了,火狐浏览器和其他浏览器,处理编码方式不太一样,用request区分。
fileName = fileName+".xls";
String agent = request.getHeader("USER-AGENT").toLowerCase();
if (agent.contains("firefox")) {
response.reset();
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes(), "ISO8859-1") );
}else{
fileName = URLEncoder.encode(fileName, "UTF-8");
response.reset();
// ContentType 可以不设置
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
}