日语字符无法在Excel 2007中正常打开的CSV文件

时间:2010-11-30 11:40:26

标签: java jsp unicode download

我有一个简单的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

1 个答案:

答案 0 :(得分:2)

我已经回答了类似的问题。请在此处阅读:setting a UTF-8 in java and csv file。通常,可以通过在文件的开头放置“魔术”代码(称为字节顺序标记)来解决问题。