情形:网关经过FTP下载快钱对帐文件时经过Apache下commons-net的commons-net-3.5.jar进行封装,对帐文件中有中文和英文的文字,大部分状况下可以下载成功,并且也能解压成功。可是偶尔会出现下载了zip的文件,可是解压失败的状况。
解决办法:FTP网络传输没有设置二进制文件类型:ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
以下截图所示,设置二进制文件类型后便可正常下载和解压!而且只能在登陆以后进行非设置才能生效。
上面在未设置二进制文件类型时,下载的zip大小为3390,不能解压;设置二进制文件类型后,下载的zip大小为3391,可以解压。
引发缘由: Binary模式不会对数据进行任何处理。
Ascii模式会将回车换行转换为本机的回车字符,fileType是ascii的,因此碰到中文可能会有问题