14

我必须将文件上传到 FTP 服务器。文件名包含特殊字母,例如äöü. 在 FTP 服务器上,我需要对文件名进行 UTF-8 编码。

我的代码是这样的:

import org.apache.commons.net.ftp.FTPClient;

FTPClient client = new FTPClient();

...

boolean retval = client.storeFile(fileName, inputStream);

问题是在 之后storeFile,保存在 FTP 服务器上的文件名是 ISO-8859-1 编码而不是 UTF-8。

如何告诉FTPClientUTF-8 对文件名进行编码?

4

2 回答 2

29

我还没有测试过,但你可以试试这个

client.setControlEncoding("UTF-8");
于 2012-03-27T11:42:53.613 回答
6

由于 Apache Commons NET 3.0 可以用来ftpClient.setAutodetectUTF8( true );在 FTP 服务器上启用对 UTF-8 支持的自动检测。就像setControlEncoding它必须在连接之前调用一样。

请参阅相应的javadoc

于 2015-11-30T11:25:49.440 回答