在 JSch ssh 响应中转义 Codes/Random 个字符

Escape Codes/Random characters in JSch ssh response

我正在使用 JSch 通过 SSH 连接到 Linux 服务器和 运行 自定义实用程序并检查 java 代码中的响应。我看到一些随机字符作为响应。签入 Putty 时同样看起来不错。

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, 0, 1024);
            if (i < 0)
                break;
            return new String(tmp, 0, i);
        }
        if (channel.isClosed()) {
            break;
        }
    }
    return "";
}

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

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

会不会是编码问题?请建议是否可以调整上述方法。非常感谢。

我用的是exec通道,也有提示。添加了一个正则表达式来替换转义码,现在它是可读的。

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