FTP协议,jakarta commons net,文件名编码问题

时间:2010-11-26 10:34:24

标签: java ftp apache-commons-net

我有一个可以在Ftp服务器中下载特定文件的工作应用程序。 我有我想下载的文件名,所以我只是连接和使用: ftp.retrieveFile(filename,fileInputStream);

所以现在我们不得不改变ftp服务器,我想这个新的ftp服务器在linux下运行(旧的是windows)。现在我无法下载名称包含ISO-8859-1字符串的文件,例如çãáóó。 我尝试在FTPClient的构造函数之后使用ftpClient.setControlEncoding(“ISO-8859-1”),但它不起作用。当retrevieFile被调用时,它返回false,因为它无法找到该文件。但它没有这些字符串的文件名工作正常。

我正在从另一个文件中读取文件名... 我犯了一个错误,我读了,文件名为ISO_8859-1(但它在文件中被编码为UTF-8)然后尝试retrevieFile并且它在名称中使用了奇怪的字符。 发生了什么事?

编辑:

这是服务器的答案:

SYST 215 UNIX类型:L8

FEAT 211-特点:  EPRT  EPSV  MDTM  PASV  REST STREAM  尺寸  TVFS 211结束

1 个答案:

答案 0 :(得分:0)

好的,这已经解决了。 我意识到gftp正在上传名称中包含错误编码的文件。它使用的是UTF8