上传到 ftp 服务器,中文出现乱码解决,之前文件名 “ 网关信息 ” 始终不能正确显示,尝试了多种编码,最后GB2312 为可以用的编码,
效果:
我遇到的 ftp 服务是设置编码为:GB2312 。注意要在 connect 之前就设置编码。
ftpClient.setControlEncoding("GB2312");
代码语言:javascript复制 /**
* 参数获取FTPClient对象
* @param ftpHost FTP主机服务器
* @param ftpPassword FTP 登录密码
* @param ftpUserName FTP登录用户名
* @param ftpPort FTP端口 默认为21
* @return
*/
public static FTPClient getFTPClientByParam(String ftpHost, String ftpPassword,
String ftpUserName, int ftpPort) {
FTPClient ftpClient = null;
try {
ftpClient = new FTPClient();
ftpClient.setControlEncoding("GB2312");
ftpClient.connect(ftpHost, ftpPort);// 连接FTP服务器
ftpClient.login(ftpUserName, ftpPassword);// 登陆FTP服务器
if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
logger.info("未连接到FTP,用户名或密码错误 !");
ftpClient.disconnect();
} else {
logger.info("FTP连接成功。");
}
} catch (SocketException e) {
e.printStackTrace();
logger.info("请检查FTP的IP地址 ! ");
} catch (IOException e) {
e.printStackTrace();
logger.info("请核对FTP的端口 ! ");
}
return ftpClient;
}