Filename encoding in Apache Commons Net FTPClient

六月ゝ 毕业季﹏ 提交于 2019-12-21 03:39:07

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!