java - 列出文件时出现中文编码问题

标签 java encoding solaris cjk

我正在 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/

相关文章:

javascript - HTML 上的标题 UTF-8

java - Solaris - 为什么 java.lang.UNIXProcess.forkAndExec(Native Method) 挂起

java - 将部分 Java 虚拟机捆绑到一个项目中

java - volatile 引用真的能保证对象的内部状态对其他线程可见吗?

php - preg_replace() 会改变我的字符集吗?

python - 在 python 中使用 csv 模块读取 .xlsx

c++ - 使用 C++ 获取在后台执行的命令的实际进程 ID

linux - 按字段排序 UNIX

java - 如何从 Servlet 2.3 或 2.5 中的响应中获取 header

java - 如何做 PHP explode (", "), list(), foreach() in Java style