Сохраните файл CSV с кодировкой UTF-8 с Java - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь создать файл CSV с java, содержащий некоторые данные в арабских c буквах, но когда я открываю файл, я обнаружил, что арабские буквы c отображаются как символы. вот мой код:

String csvFilePath = "test.csv";
BufferedWriter fileWriter = new BufferedWriter(new FileWriter(csvFilePath));
fileWriter.write("الاسم ، السن ، العنوان");

, и данные в файле CSV выглядят так

ط´ط±ظٹط·

, так как я могу решить эту проблему?

1 Ответ

1 голос
/ 14 июля 2020

Как указано в Записать файл в UTF-8 с помощью FileWriter (Java)? вы должны использовать OutputStreamWriter и FileOutputStream вместо FileWriter и указать кодировку:

String csvFilePath = "test.csv";
FileOutputStream file = new FileOutputStream(csvFilePath);
OutputStreamWriter fileWriter = new OutputStreamWriter(file, StandardCharsets.UTF_8);
fileWriter.write("الاسم ، السن ، العنوان");
fileWriter.close();

Изменить после комментария:

Чтобы убедиться, что кодировка исходного кода не является проблемой, экранируйте строку Unicode следующим образом:

fileWriter.write("\u0627\u0644\u0627\u0633\u0645\u0020\u060c\u0020\u0627\u0644\u0633\u0646\u0020\u060c\u0020\u0627\u0644\u0639\u0646\u0648\u0627\u0646");
...