JAVA/SERVLET 以UTF-8导出CSV文件时产生乱码的解决方法
来源:互联网 发布:网络表妹是什么意思 编辑:程序博客网 时间:2024/06/04 18:23
- OutputStreamWriter osw = new OutputStreamWriter(resp.getOutputStream(), "UTF-8");
- // 要输出的内容
- result = (String)contentMap.get(RESPONSE_RESULT);
- resp.setHeader("Content-Disposition", "attachment;filename=test.csv");
- osw.write(result);
- osw.flush();
在SERVLET中,通过以上代码将内容输出至CSV文件中后,用EXCEL打开文件时,总是产生乱码,但是用NOTEPAD++打开时,显示正常。然后,在NOTEPADD++的“格式”工具栏中查了一下文件编码,发现是“以UTF-8无BOM格式编码”,然后试着将其改为“以UTF-8格式编码”后,再用EXCEL打开时,OK,一切显示正常。那么,这么说明EXCEL是支持UTF-8格式的CSV文件的。同时,也说明,通过以上方式导出的文件中是不含BOM信息的(关于BOM信息请自行谷歌一下)。那么,接下来,为了要让EXCEL正确的显示,要做的事就很明显了----手动的给将要输出的内容加上BOM标识。具体方法如下:
- OutputStreamWriter osw = new OutputStreamWriter(resp.getOutputStream(), "UTF-8");
- // 要输出的内容
- result = (String)contentMap.get(RESPONSE_RESULT);
- resp.setHeader("Content-Disposition", "attachment;filename=test.csv");
- osw.write(new String(new byte[] { (byte) 0xEF, (byte) 0xBB,(byte) 0xBF }));
- osw.write(result);
- osw.flush();
重点就是上面的红色代码(哎,ITEYE的这个编辑器怎么了,设置了颜色显示不出来)了(即倒数第三行代码),至于为什么要添加这个,只要你自己谷歌过BOM的话,自然就明白了。
另外,如果你使用的是Response的OUT进行输出的话,可以这么搞:
- out = response.getOutputStream();
- //加上UTF-8文件的标识字符
- out.write(new byte []{( byte ) 0xEF ,( byte ) 0xBB ,( byte ) 0xBF });
0 0
- JAVA/SERVLET 以UTF-8导出CSV文件时产生乱码的解决方法
- JAVA/SERVLET 以UTF-8导出CSV文件时产生乱码的解决方法
- JAVA 以UTF-8导出CSV文件时产生乱码的解决方法
- JAVA以UTF-8导出CSV文件,用excel打开产生乱码的解决方法
- JAVA导出CSV文件时产生乱码的解决方法
- Java导出csv文件乱码的解决方法
- PHP导出CSV中文乱码的解决方法:UTF-8转GB2312
- java 以utf-8生成csv文件,用excel打开乱码问题解决
- 在UTF-8编码的Web 程序中导出CSV文件乱码问题
- scala导出UTF-8的CSV文件用Excel打开乱码
- PHP导出CSV文件出现乱码的解决方法
- java输出utf-8的csv文件时,文件中有中文,excel打开文件乱码问题解决
- 避免UTF-8的csv文件打开中文出现乱码
- java写utf-8编码的csv文件,用excel2007打开乱码
- java 导出成.csv文件的乱码问题
- magento -- 在导出CSV时进行转码以保证用excel打开有中文的CSV文件时不会乱码
- mantis导出CSV乱码解决方法
- Mantis导出CSV乱码解决方法
- OC 内存管理初级
- Linux下命令在命令行执行正常,放到脚本文件执行出错
- 韩语学习之第八课
- 杭电2005第几天
- 杭电2006奇数的乘积
- JAVA/SERVLET 以UTF-8导出CSV文件时产生乱码的解决方法
- OC中的protocol
- 漫谈反射
- Struts2结合jquery使用Ajax传递Json数据
- 杭电2007偶数平方奇数立方
- 黑马程序员 java学习笔记(day10)
- ETL调度开发(4)——FTP加载文件子程序
- toms salg qzeqgz:h
- Gucci iPhone 5/5s Case vopste:n