本人在linux服务器的tomcat下部署一个war包项目,但是里面创建中文文件名文件一直乱码,经过多重测试后找到解决方案:
需要在Tomcat启动的时候强制设置LC_ALL 环境变量 =zh_CN.UTF8,同时设置上Dfile.encoding=UTF8,如下图是本人使用守护进程启动tomcat文件配置(daemon.sh);
如果不使用守护进程启动tomcat的,可以配置catalina.sh来设置tomcat启动参数
通过问题解决得出结论:sun.jnu.encoding 影响文件名的创建,而 file.encoding 则影响到文件内容。
所以说,在我们使用 Java 处理中文文件的时候,如果发现文件的中文内容没有乱码,而文件的中文名发生乱码,我们就应当多考虑一下 sun.jnu.encoding 和 file.encoding 的区别了。
如果实在没解决问题,看下面这个:
http://blog.csdn.net/petershusheng/article/details/68491874