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?
I have not tested it, but you can try this:
Since Apache Commons NET 3.0 one can use
ftpClient.setAutodetectUTF8( true );
to enable autodetection of UTF-8 support on the FTP server. LikesetControlEncoding
it must be called before connection.See the corresponding javadoc.