Шведские символы отображаются неправильно, когда я загружаю CSV-файл ⇐ JAVA
-
Anonymous
Шведские символы отображаются неправильно, когда я загружаю CSV-файл
Недавно я обновил свое приложение с jdk7 до 8 и tomcat с 7 до 9. Поэтому при загрузке файла csv со шведскими символами символы отображаются неправильно. Раньше (в более старой версии) файл csv работал нормально.
Например: в Excel при открытии CSV отображается «Förnamn». в Excel при открытии старого CSV его «Förnamn»
userInputStream = новый ByteArrayInputStream(builder.toString() .getBytes()); длина целого = 0; ServletOutputStream outStreamData = null; пытаться { outStreamData = response.getOutputStream(); } поймать (IOException e1) { LOGGER.error(e1.getMessage()); } response.setContentType("application/octet-stream"); response.setContentLength(builder.length()); Строка fileName = msgList.get("fileName"); // устанавливаем HTTP-заголовок response.setHeader("Content-Disposition", "attachment; filename=\"" + имя_файла + "\""); байт[] byteBuffer = новый байт[1024]; DataInputStream in = новый DataInputStream (userInputStream); // считывает байты файла и записывает их в поток ответов пытаться { while ((in != null) && ((length = in.read(byteBuffer)) != -1)) { outStreamData.write(byteBuffer, 0, длина); } в.закрыть(); outStreamData.close(); } catch (IOException e) { LOGGER.error(e.getMessage()); } Ниже код стоек
application/octet-stream userInputStream attachment;filename="DataDump.csv" 1024 Я не знаю, что на самом деле изменилось и что мне следует сделать в коде, чтобы исправить CSV. я попробовал добавить кодировку utf 8, но не получилось
Недавно я обновил свое приложение с jdk7 до 8 и tomcat с 7 до 9. Поэтому при загрузке файла csv со шведскими символами символы отображаются неправильно. Раньше (в более старой версии) файл csv работал нормально.
Например: в Excel при открытии CSV отображается «Förnamn». в Excel при открытии старого CSV его «Förnamn»
userInputStream = новый ByteArrayInputStream(builder.toString() .getBytes()); длина целого = 0; ServletOutputStream outStreamData = null; пытаться { outStreamData = response.getOutputStream(); } поймать (IOException e1) { LOGGER.error(e1.getMessage()); } response.setContentType("application/octet-stream"); response.setContentLength(builder.length()); Строка fileName = msgList.get("fileName"); // устанавливаем HTTP-заголовок response.setHeader("Content-Disposition", "attachment; filename=\"" + имя_файла + "\""); байт[] byteBuffer = новый байт[1024]; DataInputStream in = новый DataInputStream (userInputStream); // считывает байты файла и записывает их в поток ответов пытаться { while ((in != null) && ((length = in.read(byteBuffer)) != -1)) { outStreamData.write(byteBuffer, 0, длина); } в.закрыть(); outStreamData.close(); } catch (IOException e) { LOGGER.error(e.getMessage()); } Ниже код стоек
application/octet-stream userInputStream attachment;filename="DataDump.csv" 1024 Я не знаю, что на самом деле изменилось и что мне следует сделать в коде, чтобы исправить CSV. я попробовал добавить кодировку utf 8, но не получилось