Перечисление имен файлов с символами Unicode (арабский) - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь получить все имена файлов в каталоге и подкаталоге в нем.Название каталога и файлов на арабском языке.Когда я получаю имя файла, он возвращается ????отметьте вместо имени.Кто-нибудь сталкивался с этой проблемой раньше?

    boolean recursive = true;
    Collection files = FileUtils.listFiles(root, null, recursive);

    //System.out.println(files.toString());

    PrintWriter success = new PrintWriter("E:\\success.txt", "UTF-8");

    for (int i = 0; i < list.size(); i++) {
        fileName = list.get(i);
        for (Iterator iterator = files.iterator(); iterator.hasNext();) {
            File file = (File) iterator.next();
            if (file.getName().endsWith(fileName)) {
                Files.copy(Paths.get(file.getAbsolutePath()),
                        Paths.get(targetDirectory + "\\" + file.getName()));
                success.println(fileName.toString());
            }
        }

    }

1 Ответ

0 голосов
/ 12 сентября 2018

Вы пробовали формат кодирования UTF-16?

PrintWriter success = new PrintWriter("E:\\success.txt", "UTF-16");

Edit: Я думаю, что UTF-8 должен уметь правильно кодировать арабские символы. Проблема может заключаться в текстовом редакторе, который вы используете для чтения файла. Пожалуйста, проверьте формат кодировки текстового редактора, который вы используете для чтения вашего файла. Установка кодировки Unicode UTF-8 в редакторе должна решить вашу проблему.

...