linux环境下生成文件,文件名称中文乱码
2017-07-04 17:54
295 查看
转载自:http://blog.csdn.net/petershusheng/article/details/56666194
原文地址: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
原文地址: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
相关文章推荐
- linux环境下jfreechart生成的图形中文乱码
- 解决Linux下Java生成中文文件和文件夹乱码
- 解决linux环境tomcat下载文件404的问题(路径中文乱码)
- AIX/LINUX创建中文文件名称乱码解决
- linux下javadoc生成文件出现中文乱码
- linux下javadoc生成文件出现中文乱码
- linux环境下 java生成html文件 中文乱码 解决方案
- Tomcat应用向所在的linux环境中的文件写入中文字符乱码
- 解决HttpClient的FilePart上传文件中使用中文名称文件名乱码问题
- JFreeReport生成 html、pdf文件中文乱码的解决办法
- 解决在linux下用eclipse打开windows文本文件产生中文乱码的问题
- Linux 中文字体乱码修改 i18n 文件
- Linux上配置Apache,支持中文名称文件下载的方法
- Qt中QFtp获取带有中文的文件名称出现乱码的解决方法
- java io写文件 在linux出现中文乱码
- org.apache.tools.zip在Linux下压缩文件中文乱码问题解决
- jfreechart在linux环境下显示中文为乱码的解决办法
- Linux 中文字体乱码修改 i18n 文件
- 俺的gVim配置文件(解决了菜单栏,右键菜单和提示框中文乱码问题)(for windows,linux下应该也没问题)
- 彻底解决使用Doxygen 1.5.6自动生成的chm文件导航栏中文乱码问题