linux下 java 创建中文文件名乱码问题

原文地址:http://blog.csdn.net/youling_lh/article/details/9475519

今天项目中遇到通过web上传文件到文件系统时,中文文件名乱码,一步步排查了http通讯过程中的编解码(通过utf-8)都没有发现问题。操作系统的默认字符集也是utf-8。 通过日志打印System.getProperty(“file.encoding”)也是utf-8码。。。。一时凌乱了!! 最后通过查资料,发现通过Java写文件时文件名编码和System.getProperty(“sun.jnu.encoding”)有关,打印此环境属性发现输出竟然是ANSI的一种编码,终于找到问题爆发点,通过在程序中设置System.setProperty(“sun.jnu.encoding”,”utf-8”)解决问题。

通过问题解决得出结论:sun.jnu.encoding 影响文件名的创建,而 file.encoding 则影响到文件内容。

所以说,在我们使用 Java 处理中文文件的时候,如果发现文件的中文内容没有乱码,而文件的中文名发生乱码,我们就应当多考虑一下 sun.jnu.encoding 和 file.encoding 的区别了。

如果实在没解决问题,看下面这个:
http://blog.csdn.net/petershusheng/article/details/68491874

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值