我用ssh2.jar连接到Linux上发命令,并读取返回的字符串: /* 开启Session(会话) */
_session = _connection.openSession(); int x_width = 90;
int y_width = 30;
/* 请求虚拟终端(伪终端) */
_session.requestPTY("dumb", x_width, y_width, 0, 0, null);
_session.startShell();
/* 初始化输入流,输出流 */
_inputStreamReceiver = _session.getStdout();
_outputStreamSender = _session.getStdin();以前读取数据都没什么问题的,Linux的命令提示符颜色都是白色:
[root@DEVICE 19:29:26 ~]#现在Linux的命令提示符是彩色的了:
[root@DEVICE 19:29:26 ~]#结果通过输入流得到的信息是乱码:
[[1;32mroot[1;33m@[1;31mT300018663 19:29:26 [1;35m~[0m]#有没有什么办法使终端提示符没有颜色啊?
_session = _connection.openSession(); int x_width = 90;
int y_width = 30;
/* 请求虚拟终端(伪终端) */
_session.requestPTY("dumb", x_width, y_width, 0, 0, null);
_session.startShell();
/* 初始化输入流,输出流 */
_inputStreamReceiver = _session.getStdout();
_outputStreamSender = _session.getStdin();以前读取数据都没什么问题的,Linux的命令提示符颜色都是白色:
[root@DEVICE 19:29:26 ~]#现在Linux的命令提示符是彩色的了:
[root@DEVICE 19:29:26 ~]#结果通过输入流得到的信息是乱码:
[[1;32mroot[1;33m@[1;31mT300018663 19:29:26 [1;35m~[0m]#有没有什么办法使终端提示符没有颜色啊?
String str = "[[1;32mroot[1;33m@[1;31mT300018663 19:29:26 [1;35m~[0m]#";
str = str.replaceAll("\\x1b\\[[0-9]+(?:;[0-9]+){0,2}m", "");
System.out.println(str);
}
}