微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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-?]*[ -\\/]*[@-~]","");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。