java保存csv文件
1.编码格式写的是utf-8,结果ie保存的时候,中文文件名乱码
2.把中文改成了全英文,结果火狐保存的时候,文件名和文件后缀丢失,这是为什么呢,因为文件名中间我写了空格,就像这样
abc de ff.csv
用火狐下载文件名字中有空格,这样的话火狐就把空格后面的都自动去掉了
PrintWriter out = null;
String fileName = null;
String downExcelFileName = DateUtil.toString(new Date(),
DateUtil.yyyyMMddHHmm);
try {
fileName = new String(
("Testing-Data_" + downExcelFileName + ".csv").getBytes(),
"ISO8859-1");
response.setContentType("application/csv;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment;filename="
+ fileName);
out = response.getWriter();
out.print("test");
out.flush();
} catch (IOException e) {
return;
} finally {
out.close();
}
这样就好了
==================================
对了,还有,之前我写的是GB-2313编码,然后下载之后的csv文件打开的话,有些不常用的汉字就会显示“?”
这点也要注意一下,不要用2312编码。
百度据说
ie的默认编码是系统默认编码,中文环境下就是gbk,而火狐默认编码是utf-8。
chrome浏览器就什么都可以的了,不存在中文乱码和空格文件名丢失