问题
I have to upload a file to an FTP server. The filename contains special letters, say äöü
. On the FTP server, I need the filename to be UTF-8 encoded.
My code is like this:
import org.apache.commons.net.ftp.FTPClient;
FTPClient client = new FTPClient();
...
boolean retval = client.storeFile(fileName, inputStream);
The problem is that after storeFile
, the name of the file saved on the FTP server is ISO-8859-1 encoded rather than UTF-8.
How can I tell FTPClient
to UTF-8 encode the file names?
回答1:
I have not tested it, but you can try this:
client.setControlEncoding("UTF-8");
回答2:
Since Apache Commons NET 3.0 one can use ftpClient.setAutodetectUTF8( true );
to enable autodetection of UTF-8 support on the FTP server. Like setControlEncoding
it must be called before connection.
See the corresponding javadoc.
来源:https://stackoverflow.com/questions/9535925/filename-encoding-in-apache-commons-net-ftpclient