apache开源FTPClient的记录

文件名中文乱码问题,传输binary文件, 由于FTPClient默认使用ASCII作为传输模式, 所有不能传输二进制文件. 通过ftp.setFileType(FTP.BINARY_FILE_TYPE)可以解决这个问题, 但是要在login以后执行. 因为这个方法要向服务器发送”TYPE I”命令.

1
2
FTPClient ftp = new FTPClient();
ftpC.setFileType(FTPClient.BINARY_FILE_TYPE);

以下这句暂时没有用到先留着:

开始知道能用FTPClient的listNames方法得到当前目录下所有文件的列表. 但是发现中文文件名是乱码. 默认情况下FTPClient使用UTF-8字符集作为和服务器通讯的编码集. 而我们的ftp服务器是在中文windowsXP上装的ServU. 所有使用GBK做为通讯编码集. 经过查找api文档, 我看到了setControlEncoding方法, 试了一下,果然好使. 于是这个问题就解决了:

1
ftpC.setControlEncoding("GBK");

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">