【发布时间】:2021-10-11 14:29:39
【问题描述】:
我正在尝试将韩语字符写入文件,它正在写入一些乱码数据,当我在 CSV 中打开它时,我需要解决这些数据以显示为韩语数据。在没有解码回 UTF-8 并显示韩语数据的解决方法的情况下,如何实现我的要求。
File localExport = File.createTempFile("char-test", ".csv");
try (
FileOutputStream fos = new FileOutputStream(localExport);
BufferedOutputStream bos = new BufferedOutputStream(fos);
OutputStreamWriter outputStreamWriter =
new OutputStreamWriter(bos, StandardCharsets.UTF_8)
) {
ArrayList<String> rows = new ArrayList<>();
rows.add("\"가짜 사용자\",사용자123,saint1_user123");
rows.add("\"페이크유저루노도스트레스 성도1\",saint1_user1");
for (int i=0; i<2; i++) {
String csvUserStr = rows.get(i);
outputStreamWriter.write(csvUserStr);
}
}
它正在写入以下数据,而不是我实际写入文件的数据。
【问题讨论】:
-
你需要 UTF_16
-
您正在查看它如何准确地看待它,
file.encoding的价值是什么? -
使用 Unicode,应该定义所有字符。
-
你确实不需要 UTF-16,这是不正确的建议。
-
不幸的是,他们认为不可接受的是 Excel 中的行为,而不是您的软件。
标签: java outputstream fileoutputstream bufferedoutputstream