代码之家  ›  专栏  ›  技术社区  ›  RandomQuestion

在Excel2007中没有正确打开带有日文字符的csv文件

  •  1
  • RandomQuestion  · 技术社区  · 15 年前

    我有一个 简单JSP 下载包含 日本人 字符。下载的文件在中正确打开 记事本++ 显示正确的字符,但当我试图在 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();
    %>
    

    Excel2007中的此字符串如下所示: 方位角

    有人能帮我一下吗?当用户点击下载链接(在JSP上面)时,应该能够直接在Excel中打开文件。

    任何帮助都将不胜感激。

    谢谢 吉滕德拉

    1 回复  |  直到 14 年前
        1
  •  2
  •   Community Mohan Dere    9 年前

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