如何在Java Spring中将文件中的内容强制为utf-8?

时间:2019-04-26 20:11:33

标签: java spring file utf-8 utf

我有一个创建文件的功能,但是当我检查创建的文件时,其内容不在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 个答案:

答案 0 :(得分:1)

创建FileWriter而不是使用FileOutputStream。然后,您可以将其包装在OutputStreamWriter中,这允许您在构造函数中传递编码。然后,您可以将数据写入try-with-resources Statement中的数据中:

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