问题描述:
对于不同浏览器存在对中文编码格式问题,从而在导出Excel文件时,中文文件名出现乱码的情况,即在程序中给要导出的文件指定一个中文名字时,在浏览器上出现的下载框中的文件名出现了乱码,解决如下:
解决方案:
- Date dt=new Date();
- DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
- String nowTime="";
- nowTime= df.format(dt);
-
- WritableWorkbook book = null;
- String fileName = null;
- fileName = "中文文件名"+nowTime+ ".xls";
- OutputStream os = null;
- final String userAgent = request.getHeader("USER-AGENT");
- try {
- os = response.getOutputStream();
- esponse.reset();
-
- String finalFileName = null;
- if(StringUtils.contains(userAgent, "MSIE")){
- finalFileName = URLEncoder.encode(fileName,"UTF8");
- }else if(StringUtils.contains(userAgent, "Mozilla")){
- finalFileName = new String(fileName.getBytes(), "ISO8859-1");
- }else{
- finalFileName = URLEncoder.encode(fileName,"UTF8");
- }
- response.setHeader("Content-Disposition", "attachment; filename=\"" + finalFileName + "\"");
- response.setContentType("application/vnd.ms-excel");
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }catch (IOException e) {
- e.printStackTrace();
- }
-
- book = Workbook.createWorkbook(os);
- WritableSheet sheet = book.createSheet("Sheet_1", 0);.................................
Java web中不同浏览器间导出Excel文件名称乱码问题解决方案
原文:http://www.cnblogs.com/lxl57610/p/7392646.html