在用 jsch 操作 SFTP的时候,如果jar包版本时3-5,
都不允许修改编码.
jar包默认是UTF-8.
但中文都会乱码.
我们设置编码,是没有效果的.
这时候有朋友就采用换jar包的方式.
让版本不是3-5的.
其实可以通过反射来修改版本号,
从而修改编码.
//利用反射修改版本编号
Class<ChannelSftp> c = ChannelSftp.class;
f = c.getDeclaredField("server_version");
f.setAccessible(true);
f.set(chSftp, 2);
chSftp.setFilenameEncoding("gbk");
Vector<LsEntry> ls = chSftp.ls(path);
LsEntry是他的内部类.
---工作中记录.