Apache Commons Net FTPClient 中的文件名编码

2022-09-03 09:38:12

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

我的代码是这样的:

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

FTPClient client = new FTPClient();

...

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

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

如何判断文件名的 UTF-8 编码?FTPClient


答案 1

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

client.setControlEncoding("UTF-8");

答案 2

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

请参阅相应的 javadoc


推荐