最近在用java 远程Linux上执行Shell命令,通过ganymed-ssh2 jar包进行连接,然后执行完命令获得执行结果等数据的处理,将结果打印在日志里,并且使用VIM打开日志文件查看,出现:
也就是出现这些很奇怪的字符(一脸懵~),非常影响查看和让人很疑惑。
通过网上查找资料发现原来是:
^M 是ascii中的'\r', 回车符,是16进制的0x0D,8进制的015,十进制的13。
其实这个主要是unix和dos上对换行的区别,unix上是\n,dos上是\r\n。
^M并不是按键shift + 6产生的^和字母M,, 生成它的办法是在Vim模式上先按CTRL+V, 然后再回车(或CTRL+M)。
^H 是ascii中的'\b' :表示按 Backspace(退格)键。
^@ 空字符(ascii 码 0,在程序里一般写作"\0"),在 vim 里就显示成 ^@。
解决:
1、^M
可在Vim模式上使用:%s/^M//g,将其去除。如果是Java程序则replaceAll("\r","")即可。
2、^H
可在Vim模式上使用:%s/^H//g,将其去除。如果是Java程序则replaceAll("\b","")即可。
3、^@
可在Vim模式上使用:%s/^@//g,将其去除。如果是Java程序则replaceAll("\0","")即可。
参考资料:
https://blog.csdn.net/a532672728/article/details/78976639
http://www.blogjava.net/lihao336/archive/2011/04/11/348040.html
http://www.blogjava.net/lihao336/archive/2011/02/28/324872.html
评论
暂无评论!
昵 称:
验证码:
内 容:
打赏
微信扫一扫,打赏一下~
关注公众号