包含日文字符的java CSV文件在Excel 2007中未正确打开
我有一个简单的JSP来下载包含日语字符的csv文件。下载的文件在notepad++中正确打开并显示正确的字符,但当我尝试在Excel2007中打开同一文件时,它显示了一些不同的字符,可能是其他编码
我的JSP看起来像这样
<%@ page language="java" contentType="text/csv; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.io.*"%>
<%
response.setCharacterEncoding("UTF-8");
response.setContentType("text/csv; charset=UTF-8");
response.addHeader("Content-Disposition", "attachment; filename= " + "Test.csv");
OutputStream output = response.getOutputStream();
System.out.println("Chaaracter encoding : " + response.getCharacterEncoding());
Writer writer = new BufferedWriter(new OutputStreamWriter(output,"UTF-8"));
String japanese = "注目のキーワード";
InputStream in = new ByteArrayInputStream(japanese.getBytes("UTF-8"));
BufferedReader reader = new BufferedReader(new InputStreamReader(in,"UTF-8"));
String line = null;
while ((line = reader.readLine()) != null) {
writer.write(line);
writer.write(System.getProperty("line.separator"));
}
reader.close();
writer.flush();
writer.close();
%>
Excel 2007中的这个字符串如下所示:
谁能帮我一下吗。当用户单击下载链接(jsp上方)时,应该能够直接在Excel中打开文件
任何帮助都将不胜感激
谢谢 吉坦德拉
# 1 楼答案
我已经回答了类似的问题。请阅读这里:setting a UTF-8 in java and csv file。一般来说,可以通过在文件开头添加“魔法”代码(称为字节顺序标记)来解决这个问题