SincereXing 2014-05-23 09:17 采纳率: 0%
浏览 1995

tomcat下java程序读取文件名乱码

我的系统运行环境是FreeNAS9.2(可以参考FreeBSD)、TOMCAT6、JAVA7,我在系统的一个目录下放了很多文件,文件名都是中文的,但是在tomcat下部署了一个web项目,web项目读取这些文件并把这些文件的文件名输出到一个文件,但是出现下图的乱码。但是我在系统里放几个本地文件,跑java本地程序(java test),这样输出到文件就不出现乱码,不知道有没有大神知道这个问题,求指导

CSDN移动问答

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 03:30
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题应该和你的编码有关,可能你的编码不是UTF-8或者GBK等标准的字符集,而是在你的Tomcat服务器上默认的编码方式。

    你可以尝试在你的Tomcat服务器上修改它的默认编码,例如设置为UTF-8:

    sudo vi /etc/profile
    

    然后输入以下内容保存并退出:

    export LANG=zh_CN.UTF-8
    export LC_ALL=zh_CN.UTF-8
    

    重启Tomcat服务后,问题应该解决。

    如果你的Java程序中使用了其他字符集,请确保你在调用System.getProperty("os.name")时返回的是"Linux"或"Darwin",否则可能会导致乱码问题。例如:

    String osName = System.getProperty("os.name");
    if (osName.startsWith("Linux")) {
        // Linux系统
    } else if (osName.startsWith("Darwin")) {
        // macOS系统
    }
    

    此外,你也可以考虑使用FileInputStream而不是BufferedReader来处理文件,因为BufferedReader可能会遇到乱码问题。

    评论

报告相同问题?