ganymed-ssh2执行命令(exec)中文乱码问题解决
在java程序中使用ganymed-ssh2,采用exec的session方式(详见RFC4254)。
向远程主机输入命令后,如果返回的结果中有中文,这些中文会乱码显示,这是因为使用exec的方式登录不能获得当前编码的环境变量。
解决方法为,在执行这个命令之前设置编码环境变量,如下:
import ch.ethz.ssh2.Connection; import ch.ethz.ssh2.Session; Session sess = conn.openSession(); String encodeSet = "export LC_CTYPE=zh_CN.GB18030;";sess.execCommand(encodeSet + cmd);