Подтвердить что ты не робот

Кодировка имени файла в Apache Commons Net FTPClient

Мне нужно загрузить файл на 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.

Как я могу сказать FTPClient, чтобы UTF-8 закодировал имена файлов?

4b9b3361

Ответ 1

Я не тестировал его, но вы можете попробовать this:

client.setControlEncoding("UTF-8");

Ответ 2

Так как Apache Commons NET 3.0 можно использовать ftpClient.setAutodetectUTF8( true );, чтобы включить автоопределение поддержки UTF-8 на FTP-сервере. Подобно setControlEncoding, он должен быть вызван перед соединением.

См. соответствующий javadoc.