JSch ssh响应中的转义码/随机字符

问题描述

我正在使用JSch SSH到Linux服务器并运行自定义实用程序并检查Java代码中的响应。我看到一些随机字符作为回应。签入腻子时看起来也一样。

private String logResponse(Channel channel,InputStream in) throws IOException {
    byte[] tmp = new byte[1024];
    while (true) {
        while (in.available() > 0) {
            int i = in.read(tmp,1024);
            if (i < 0)
                break;
            return new String(tmp,i);
        }
        if (channel.isClosed()) {
            break;
        }
    }
    return "";
}

使用上述方法打印响应(已删除一些文本)

Screenshot of eclipse console

如果在后续方法中使用或打印在文件中,它将显示不同的随机字符。

enter image description here

可能是由于编码造成的吗?请建议是否可以调整以上方法。非常感谢。

解决方法

我正在使用exec通道,并且也有提示。添加了一个正则表达式来替换转义码,现在可以读取了。

text.replaceAll("(\\x9B|\\x1B\\[)[0-?]*[ -\\/]*[@-~]","");