파일을 FTP 서버에 업로드해야합니다. 파일 이름에 특수 문자 (예 : äöü
)가 포함되어 있습니다. FTP 서버에서 파일 이름을 UTF-8로 인코딩해야합니다.Apache Commons Net FTPClient의 파일 이름 인코딩
내 코드는 다음과 같다 :
import org.apache.commons.net.ftp.FTPClient;
FTPClient client = new FTPClient();
...
boolean retval = client.storeFile(fileName, inputStream);
문제는 storeFile
후, FTP 서버에 저장된 파일의 이름이 UTF-8이 아닌 인코딩 된 ISO-8859-1 것입니다.
FTPClient
에 UTF-8로 파일 이름을 인코딩한다고 어떻게 알 수 있습니까?
잘못된 장소를 찾고 있다고 말하고 싶습니다. FTP 서버의 구성 일 수 있습니다. – Marcelo
반드시 그렇지는 않습니다. 원래의 FTP 프로토콜 스펙은 유니 코드를 전혀 지원하지 않았습니다. FTP 연결을 통해 UTF-8을 사용하려면 먼저 양측이 먼저 사용에 동의해야합니다. 서버는 'FEAT' 명령으로 UTF-8을 지원한다고보고해야합니다 (RFC 2640 참조, 모든 서버가 해당 사양을 지원하지는 않습니다). 일부 서버는 클라이언트가 UTF-8을 활성화하기 위해 비표준'OPTS UTF8 ON' 또는'OPTS UTF-8 NLST' 명령을 보내도록 요구합니다. $ 1M의 질문입니다. FTPClient가 무엇을 지원하고 서버가 무엇을 지원합니까? WareShark와 같은 패킷 스니퍼를 사용하여 FTP 트래픽을보고 볼 수 있습니다. –