Как заставить содержимое из файла быть UTF-8 в Java Spring? - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть функция, которая создает файл, но когда я проверяю созданный файл, его содержимое не отображается в utf-8, что вызывает проблемы с содержимым в латинских языках.

Я думал, что указание типа носителя в виде html будет достаточно для продолжения форматирования, но это не сработало.

File file = new File("name of file");
        try (OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8)) {
            writer.write(contents);
            writer.flush();
            writer.close();

            MultipartFile multipartFileToSend = new MockMultipartFile("file", "name of file", MediaType.TEXT_HTML_VALUE, Files.readAllBytes(Paths.get(file.getPath())));

        } catch (IOException e) {
            e.printStackTrace();
        }

Я хотел бы знать, как заставить это, потому что до сих пор я не понял, как.

Любые советы?

1 Ответ

1 голос
/ 26 апреля 2019

Вместо использования FileWriter создайте FileOutputStream. Затем вы можете заключить это в OutputStreamWriter, что позволит вам передать кодировку в конструктор. После этого вы можете записать свои данные в Заявление о попытках с ресурсами :

try (OutputStreamWriter writer =
             new OutputStreamWriter(new FileOutputStream("your_file_name"), StandardCharsets.UTF_8))
    // do stuff
}
...