情形:网关通过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的,所以碰到中文可能会有问题