Pentaho Unzip 解压
报错信息
2018/08/14 10:13:23 - Unzip Survey package - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : 不能解压缩文件 [file:///D:/kettle/demo/stagingarea/compression/Data_20180808102339.zip]. 异常: [MALFORMED] 2018/08/14 10:13:23 - Unzip Demo package - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : java.lang.IllegalArgumentException: MALFORMED
原因分析
kettle里使用java来解压zip文件,默认使用utf8编码,但是没有提供指定编码的地方。如果Zip文件是在Windows上生成的,那么默认的编码是GBK,所以以UTF8编码去解压时,会导致解压文件出错。当然,如果Zip文件是在Linux上生成的,就不会出现这个问题。
变通方案
- Windows 如果在windows平台上,直接使用unzip命令来解压。
- Linux 如果在Linux平台上,需要使用unzip -O CP939 来解压GBK编码的Zip包就可以了。