Как да принудя съдържанието от файл да бъде utf-8 в java spring?

Имам функция, която създава файл, но когато проверя създадения файл, съдържанието му не е в 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();
        }

Бих искал да знам как да принудя това, защото досега не съм разбрал как.

Някакви съвети?


person Sabrina    schedule 26.04.2019    source източник
comment
Не, не използвам четец BufferedReader   -  person Sabrina    schedule 26.04.2019
comment
Как се проверява дали съдържанието не е в utf-8 и ако не е utf-8, какво е? Тъй като вашият код, както е показано, ще запише UTF-8 на file.   -  person Mark Rotteveel    schedule 27.04.2019
comment
Възможен дубликат на Напишете файл в UTF-8 с помощта на FileWriter (Java )?   -  person Silvio Mayolo    schedule 27.04.2019


Отговори (1)


Вместо да използвате FileWriter, създайте FileOutputStream. След това можете да обвиете това в OutputStreamWriter, което ви позволява да подадете кодиране в конструктора. След това можете да запишете вашите данни в това в try-with-resources Statement:

try (OutputStreamWriter writer =
             new OutputStreamWriter(new FileOutputStream("your_file_name"), StandardCharsets.UTF_8))
    // do stuff
}
person Community    schedule 26.04.2019
comment
какво е това PROPERTIES_FILE? - person Sabrina; 26.04.2019
comment
Това е основно каквото име искате да дадете на файла, който пишете/създавате.. - person ; 26.04.2019
comment
Е, променям вашия пример, но не работи, съдържанието на файла е ANSI. - person Sabrina; 26.04.2019
comment
Използвахте ли аргумент StandardCharsets.UTF_8? - person ; 26.04.2019