有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

包含日文字符的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) 个答案

  1. # 1 楼答案

    我已经回答了类似的问题。请阅读这里:setting a UTF-8 in java and csv file。一般来说,可以通过在文件开头添加“魔法”代码(称为字节顺序标记)来解决这个问题