java - Netbeans 无法在 mac 中读取 utf8 文件名

标签 java netbeans encoding utf-8 filenames

我的 eclipse 上有一个项目,它的方法之一是从文件夹中读取文件列表。 当我从 eclipse 或导出的 jar 运行它时,它很好并且工作得很好。

但是我的 netbeans 上有另一个用于该应用程序 GUI 的项目,其中包含导出的 jar(工作正常),但是当我从 netbeans 运行或导出该项目时,它只是无法读取非英语文件名,它将文件名转换为类似的文件名

???????? ???? ??? .mp3 

我尝试将 -J-Dfile.encoding=UTF-8 添加到 netbeans.conf 我还尝试在 netbeans 项目属性中选择编码,但没有成功。

这是一些代码:

public SFile(String path, FileFilter filter) {
    File f = null;
    f = new File(path);
    directory = f.isDirectory();
    if (directory) {
        children = new ArrayList<SFile>();
        File[] ki = f.listFiles(filter); // here i see the ???? ????.mp3
        ArrayList<File> kids = new ArrayList<File>();
        Collections.addAll(kids, ki);
        Collections.sort(kids, comparator);
        for (File k : kids) {
            if (k.isDirectory() && k.listFiles(filter).length == 0) {
                continue;
            }
            children.add(new SFile(k.getAbsolutePath(), filter));
        }
    } else {
        // some more code...
    }
}

过滤器代码:

new FileFilter() { 
     public boolean accept(final File pathname) { 
     try {
         return pathname.getCanonicalPath().endsWith(".mp3") || pathname.isDirectory();
     } catch (final IOException e) {
     e.printStackTrace(); 
     } 
     return false; 
     }
};

我的项目依赖项:

/Users/dima/Dev/RSLib/asm-3.1.jar
/Users/dima/Dev/RSLib/grizzly-framework-2.2.16.jar
/Users/dima/Dev/RSLib/grizzly-http-2.2.16.jar
/Users/dima/Dev/RSLib/grizzly-http-server-2.2.16.jar
/Users/dima/Dev/RSLib/grizzly-rcm-2.2.16.jar
/Users/dima/Dev/RSLib/gson-2.2.2.jar
/Users/dima/Dev/RSLib/javax.servlet-api-3.1-b05.jar
/Users/dima/Dev/RSLib/jersey-bundle-1.16.jar
/Users/dima/Dev/RSLib/jersey-core-1.16.jar
/Users/dima/Dev/RSLib/jersey-grizzly2-1.16.jar
/Users/dima/Dev/RSLib/jersey-server-1.16.jar
/Users/dima/Dev/RSLib/jsr311-api-1.1.1.jar
/Users/dima/Dev/RSLib/log4j-1.2.17.jar
/Users/dima/Dev/RSLib/jid3lib-0.5.4.jar
/Users/dima/Dev/RSLib/cling-distribution-2.0-alpha2/cling-mediarenderer-2.0-alpha2-standalone.jar
/Users/dima/Dev/RSLib/cling-distribution-2.0-alpha2/cling-workbench-2.0-alpha2-standalone.jar
/Users/dima/Dev/RSLib/cling-distribution-2.0-alpha2/core/seamless-http-1.0-alpha2.jar
/Users/dima/Dev/RSLib/cling-distribution-2.0-alpha2/core/seamless-util-1.0-alpha2.jar
/Users/dima/Dev/RSLib/cling-distribution-2.0-alpha2/core/seamless-xml-1.0-alpha2.jar
/Users/dima/Dev/RSLib/cling-distribution-2.0-alpha2/support/cling-support-2.0-alpha2.jar
/Users/dima/Dev/RSLib/cling-distribution-2.0-alpha2/core/cling-core-2.0-alpha2.jar
/Users/dima/Dev/RSLib/MpegAudioSPI1.9.5/mp3spi1.9.5.jar
/Users/dima/Dev/RSLib/MpegAudioSPI1.9.5/lib/jl1.0.1.jar
/Users/dima/Dev/RSLib/MpegAudioSPI1.9.5/lib/tritonus_share.jar

最佳答案

如果您使用的是 java 7 listFiles,则报告在 mac OS X 上损坏 - 请参阅 here以及那里的链接。如果更新不能解决问题,您应该考虑 moving to nio - 或参见here .
我想查看您在 listFiles(filter);

中传递的过滤器

关于java - Netbeans 无法在 mac 中读取 utf8 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16314922/

相关文章:

java - 我真的需要 Java 来编译 Java 吗?

java - 如何清理我的代码

java - 在文本字段中同时输入时无法更新文本区域

php - Excel 生成的 CSV,特殊字符消失 (ÆØÅ) - PHP

java - spring security 因用户名问题而转义

asp.net - ASMX Web 服务对传入请求使用错误的编码

java - 收集PlaceholderFragment中的数据并发送给Activity

java - 使用 JAVA 的 CA 服务台 REST api

Java rxtxSerial 64 位与 32 位冲突

eclipse - Eclipse 是否有一个插件可以立即计算突出显示的表达式?