环境: 服务端 vsftp server

客户端 apache common net4 + pool2 连接池

关键的要点在于, ftp server 的默认传输协议,字符集为:ISO-8859-1, 在确保服务器的本地字符集默认 en_US.UTF-8 字符集

[开发心得]java ftp上传中文问题_连接池

在调用ftpClient.storeFile方法时候,确保fileUrl已经被转成8859-1

utf-8->8859-1

String ftpFileName = new String(targetName.getBytes(), StandardCharsets.ISO_8859_1);

storeFile

ftpClient.storeFile(fileName, inputStream);