我正在 Solaris10 中文版
上运行 Java 应用程序。现在目录中有一些中文文件名的文件。当我执行 files = new File(dir).list()
其中“dir”是包含该中文文件的父目录时,我得到结果文件名 files[0]
作为 ??????(一些垃圾字符)。
现在我的程序 file.encoding 属性已经设置为 GBK 并且我也设置了 Charset.isSupported("GBK")
并且它也返回 true。那么问题出在哪里。我的想法用完了。
注意:我并不是要在任何地方打印文件名或复制文件或其他内容。我只是打开一个流,如下所示:
files = new File(dir).list();
new FileInputStream(files[0]);
现在这给了我一个 FileNotFoundExcpetion,所以我调试只是为了发现 files[0] 中的值是“????????”。
最佳答案
不确定这样做是否是一个好的做法。 尝试在启动 jvm 时设置字符集:java -Dfile.encoding=""...
关于java - 列出文件时出现中文编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2423781/