java zip压缩txt后换行错乱问题

bais2244 发布于 2012/08/14 15:56
阅读 1K+
收藏 0

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

目前的开发中遇到需要将生产的txt报告文件进行zip压缩加密的操作。在windows下压缩后再解压,文本文件仍然可正常阅读,排列无错乱,但是把程序放到Aix 5.3上运行,生成的txt也是正常的,但是从压缩包里解压出压缩文件时,解压出来的文本文件的排列就乱了。txt是按GBK编码输出的。很不明白为什么在windows下能正常运行的,到了aix上就有问题了,已经设置了系统的默认编码集为GBK的还是不行。
下面是设置的参数
// 设置java虚拟机参数
System.setProperty("file.encoding", "GBK");
System.setProperty("sun.jnu.encoding", "GBK");
System.setProperty("user.language", "zh");
System.setProperty("ibm.system.encoding", "GBK");
System.setProperty("sun.io.unicode.encoding", "UnicodeLittle");
System.setProperty("encoding", "GBK");
System.setProperty("user.country", "CN");
System.setProperty("java.awt.printerjob", "sun.awt.windows.WPrinterJob");
下面这个是压缩前生成的正常可阅读的文件。


下面这个便是经过zip压缩加密后,再解压出来的文件,排列完全错乱了。

这两个文件在UE下显示的都同为UNIX格式。
希望高手能帮忙解决下,在线等,谢谢!
加载中
0
_DeepBlue
_DeepBlue
txt 是不是在机器上动态生成的 应该是Linux和windows的换行符不同
bais2244
bais2244
文件的生成和压缩都是在aix系统上进行的。
bais2244
bais2244
文件是动态输出的。过程是先输出文件,再对文件进行压缩,压缩前的文件是可以正常阅读,换行也没有问题,经过ZipOutputStream压缩后,再解压出来就出现了上面的问题!
0
27号
27号
apache的zip工具包,对中文支持有问题。需要自己改。
bais2244
bais2244
这个不是乱码的问题!已经解决了,谢谢!
0
bais2244
bais2244
感谢各位的支持,已经解决了!问题出在自动换行println上,不清楚为什么,println输出的文件是可以正常阅读的,但是zip打包后再解压出来,换行就乱了。今天试着把自动换行改为手动换行print+“\r\n”,问题就解决了,真的很不明白其中的原理!
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部