в моем приложении пользователь может загрузить отчет о Excel. Когда пользователь загружает xls с использованием FF, тогда кодирование прекрасное, а умлауты отображаются правильно. Если пользователь делает то же самое в IE и Chrome, то умлауты в xls будут разбиты.Сломанная кодировка в отчете Excel от Java
Отчет Excel создается в сервлете, используя Apache POI v3.10.1 и , заполненный теми же данными каждый раз. Но файлы xls, загружаемые в FF и IE (или Chrome), различны.
Любая идея, почему?
Кстати, я попытался установить кодировку в ответ заголовок
response.setHeader("Content-Type", "application/vnd.ms-excel; charset=UTF-8");
, но без успеха.
UPD 03.04. кусок кода из сервлета:
OutputStream out = response.getOutputStream(); ... response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + ".xls" + "\""); ... workbook.write(out);
В общем случае проблема появляется только в режиме «Защищенный просмотр». Похоже, что IE и Chrome добавляют что-то к ответу, чтобы уведомить Excel о том, что файл поступает из Интернета. –
Почему вы устанавливаете кодировку в двоичном файле? Бинарные файлы, такие как excel, не имеют кодировок, это текстовая статья – Gagravarr
@Gagravarr, я согласен. Но у меня нет другого представления об этой проблеме. –