Мне нужно записать вывод запроса базы данных в файл CSV.
К сожалению, многие люди в моей компании не могут использовать хороший редактор, такой как Notepad ++, и продолжают открывать файлы CSV в Excel.
Когда я пишу текстовый / CSV-файл, используя java.nio
, например,
public static void main(String[] args) {
Path path = Paths.get("U:\\temp\\TestOutput\\csv_file.csv");
List<String> lines = Arrays.asList("Übernahme", "Außendarstellung", "€", "@", "UTF-8?");
try {
Files.write(path, lines, StandardCharsets.UTF_8, StandardOpenOption.CREATE_NEW);
} catch (IOException e) {
e.printStackTrace();
}
}
, файл успешно создается и кодируется в UTF-8.
Теперь проблема заключается в отсутствующей спецификации в этом файле.
Отсутствует спецификация (в кодировке Notepad ++ в правом нижнем углу отображается UTF-8 ), что не является проблемой для Notepad ++
но, очевидно, это для Excel
и когда я использую Параметр Notepad ++ Кодировка> Преобразовать в UTF-8-BOM , сохранить и закрыть его, а затем открыть файл в Excel, он правильно отображает все значения, проблем с кодированием не осталось.
То приводит к следующему вопросу:
Могу ли я заставить java.nio.file.Files.write(...)
добавить спецификацию при использовании StandardCharsets.UTF-8
или есть Есть ли другой способ в java.nio
для достижения желаемой кодировки?