Java 的系统属性 sun.jnu.encoding 和 file.encoding 的区别
2015-12-15 14:43
441 查看
原文地址: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 的区别了。
今天项目中遇到通过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 的区别了。
相关文章推荐
- Orace查询数据出现乱码的问题解决思路
- oracle em 按钮乱码解决办法及em网页变成英文
- C#读取中文文件出现乱码的解决方法
- mysql命令提示行连接乱码的解决
- 解决Java程序使用MySQL时返回参数为乱码的示例教程
- Jquery乱码的一次解决过程 图解教程
- 解决realplayer11中文正式版网页右键乱码问题embed_cn.dll
- 计算机中的字符串编码、乱码、BOM等问题详解
- php+AJAX传送中文会导致乱码的问题的解决方法
- Discuz!nt 源文件变成乱码的解决方法
- jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
- JavaScript中出现乱码的处理心得
- Js,alert出现乱码问题的解决方法
- 深入Lumisoft.NET组件开发碰到乱码等问题的解决方法
- jquery中文乱码的多种解决方法
- Jquery网页出现的乱码问题的三种解决方法
- oracle安装出现乱码等相关问题
- GET方法URL中传递中文参数乱码的解决方法
- JSP中文乱码常见3个例子及其解决方法
- mysql重装后出现乱码设置为utf8可解决