1、使用sftp.setFilenameEncoding("GBK")用来设置字符集
会有报错:
The encoding can not be changed for this sftp server.
2、最终解决办法使用反射 修改ChannelSftp服务版本
//解决sftp中文乱码 Class classInfo = ChannelSftp.class; Field field = classInfo.getDeclaredField("server_version"); field.setAccessible(true); field.set(sftp, 2); //设置字符集 sftp.setFilenameEncoding("GBK");