CSV-файл с японскими символами не открывается должным образом в Excel 2007 - PullRequest
1 голос
/ 30 ноября 2010

У меня есть простой 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 Ответ

2 голосов
/ 30 ноября 2010

Я уже ответил на аналогичный вопрос. Пожалуйста, прочитайте здесь: установка UTF-8 в Java и CSV-файле . Обычно проблему можно решить, поместив «волшебный» код (известный как Byte Order Mark) в начало файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...