Bir FTP sunucusuna dosya yüklemem gerekiyor. Dosya adı özel harfler içerir, äöü
deyin. FTP sunucusunda, UTF-8 kodlu olmak için dosya adına ihtiyacım var.Apache Commons Net FTPClient içinde dosya adı kodlaması
Benim kod şu şekildedir:
import org.apache.commons.net.ftp.FTPClient;
FTPClient client = new FTPClient();
...
boolean retval = client.storeFile(fileName, inputStream);
sorun storeFile
sonra, FTP sunucusuna kaydedilir dosyanın adı UTF-8 yerine kodlanmış ISO-8859-1 olmasıdır.
Dosya adlarını UTF-8 kodlaması için FTPClient
nasıl söyleyebilirim?
Yanlış yere baktığınızı söyleyebilirim, bu muhtemelen FTP sunucusunda bir yapılandırmadır ... – Marcelo
Mutlaka değil. Orijinal FTP protokolü özellikleri hiç Unicode'u desteklemedi. Bir FTP bağlantısı üzerinden UTF-8'i kullanabilmek için, her iki tarafın da ilk önce kullanımını kabul etmesi gerekir. Sunucu, "FEAT" komutunda UTF-8'i desteklediğini rapor etmelidir (tüm sunucular bu özellikleri desteklemese de RFC 2640'a bakın). Bazı sunucular istemcilerin UTF-8'i etkinleştirmek için standart olmayan 'OPTS UTF8 ON' veya' OPTS UTF-8 NLST' komutlarını göndermesini gerektirir. Yani bu 1 milyon dolarlık soru - FTPClient'in desteği nedir ve sunucu ne destekler? FTP trafiğini izlemek ve görmek için WareShark gibi bir paket dinleyicisi kullanırdım. –