我有一个简单的JSP 来下载包含日语字符的csv文件。下载的文件在 notepad ++ 中正确打开并显示正确的字符,但当我尝试在 Excel 2007 中打开相同的文件时,它会显示一些不同的字符,可能还有其他一些编码。
我的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中的此字符串如下所示:注ç>®ã®ã,ッッãード
任何人都可以帮助我。用户在点击下载链接时可以直接在Excel中打开文件(上面是jsp)。
任何帮助都将不胜感激。
由于 Jitendra
答案 0 :(得分:2)
我已经回答了类似的问题。请在此处阅读:setting a UTF-8 in java and csv file。通常,可以通过在文件的开头放置“魔术”代码(称为字节顺序标记)来解决问题。