Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Unicode字符(阿拉伯语)列出文件名_Java_Directory_Arabic - Fatal编程技术网

Java 使用Unicode字符(阿拉伯语)列出文件名

Java 使用Unicode字符(阿拉伯语)列出文件名,java,directory,arabic,Java,Directory,Arabic,我正在尝试获取一个目录和其中的子目录中的所有文件名。目录和文件的名称为阿拉伯语。当我得到文件名时,它正在返回????标记而不是名称。有没有人早些时候面对过这个问题 boolean recursive = true; Collection files = FileUtils.listFiles(root, null, recursive); //System.out.println(files.toString()); PrintWriter success =

我正在尝试获取一个目录和其中的子目录中的所有文件名。目录和文件的名称为阿拉伯语。当我得到文件名时,它正在返回????标记而不是名称。有没有人早些时候面对过这个问题

    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());
            }
        }

    }
布尔递归=true;
集合文件=FileUtils.listFiles(根、空、递归);
//System.out.println(files.toString());
PrintWriter success=新的PrintWriter(“E:\\success.txt”、“UTF-8”);
对于(int i=0;i
您尝试过UTF-16编码格式吗

PrintWriter success = new PrintWriter("E:\\success.txt", "UTF-16");
编辑:
我认为UTF-8应该能够正确编码阿拉伯字符。这里的问题可能是用于读取文件的文本编辑器。请检查用于读取文件的文本编辑器的编码格式。在编辑器中将编码设置为UnicodeUTF-8可以解决您的问题。

您尝试过UTF-16编码格式吗

PrintWriter success = new PrintWriter("E:\\success.txt", "UTF-16");
编辑:
我认为UTF-8应该能够正确编码阿拉伯字符。这里的问题可能是用于读取文件的文本编辑器。请检查用于读取文件的文本编辑器的编码格式。在编辑器中将编码设置为UnicodeUTF-8可以解决您的问题。

使用正确的编码。不确定UTF-8是否包含阿拉伯语字符UTF-8不支持此处所示的阿拉伯语字符
UTF-8
支持阿拉伯语。请使用正确的编码。不确定UTF-8是否包含阿拉伯语字符。如图所示,UTF-8不支持阿拉伯语字符。
UTF-8
支持阿拉伯语。